纯JS实现轮播图


Posted in Javascript onFebruary 22, 2017

这几天一直在看js动画,今天又get到了一个轮播图,使用纯js实现的,但是没有美化哈,需要的小伙伴自己美化喔

如下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>图片轮播的效果</title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
      text-decoration: none;
    }
    body {
      padding: 20px;
    }
    #container {
      position: relative;
      width: 600px;
      height: 400px;
      border: 3px solid #333;
      overflow: hidden;
    }
    #list {
      position: absolute;
      z-index: 1;
      width: 4200px;
      height: 400px;
    }
    #list img {
      float: left;
      width: 600px;
      height: 400px;
    }
    #buttons {
      position: absolute;
      left: 250px;
      bottom: 20px;
      z-index: 2;
      height: 10px;
      width: 100px;
    }
    #buttons span {
      float: left;
      margin-right: 5px;
      width: 10px;
      height: 10px;
      border: 1px solid #fff;
      border-radius: 50%;
      background: #333;
      cursor: pointer;
    }
    #buttons .on {
      background: orangered;
    }
    .arrow {
      position: absolute;
      top: 180px;
      z-index: 2;
      display: none;
      width: 40px;
      height: 40px;
      font-size: 36px;
      font-weight: bold;
      line-height: 39px;
      text-align: center;
      color: #fff;
      background-color: RGBA(0, 0, 0, .3);
      cursor: pointer;
    }
    .arrow:hover {
      background-color: RGBA(0, 0, 0, .7);
    }
    #container:hover .arrow {
      display: block;
    }
    #prev {
      left: 20px;
    }
    #next {
      right: 20px;
    }
  </style>
</head>
<body>
<div id="container">
  <div id="list" style="left: -600px;">
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s018.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s018.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s019.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s020.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s021.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s022.jpg" alt="无缝滚动" />
    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s022.jpg" alt="无缝滚动" />
  </div>
  <div id="buttons">
    <span index="1" class="on"></span>
    <span index="2"></span>
    <span index="3"></span>
    <span index="4"></span>
    <span index="5"></span>
  </div>
  <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="prev" class="arrow"><</a>
  <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="next" class="arrow">></a>
</div>
<script type="text/javascript">
  window.onload=function(){
    var container = document.getElementById("container");
    var list = document.getElementById("list");
    var buttons = document.getElementById("buttons").getElementsByTagName('span');
    var prev = document.getElementById("prev");
    var next = document.getElementById("next");
    var index = 1;
   function animate(offset){
     var newLeft = parseInt(list.style.left) + offset;
     list.style.left = newLeft + 'px';
     if(newLeft<-3000){
       list.style.left= -600 +'px';
     }
     if(newLeft>-600){
       list.style.left = -3000 + 'px';
     }
   }
   function buttonsshow(){
     for(var i =0; i<buttons.length;i++){
       if(buttons[i].className == 'on'){
         buttons[i].className='';
       }
     }
     buttons[index-1].className='on';
   }
   prev.onclick = function(){
     index-=1;
     if(index<1)
     {
       index=5;
     }
     buttonsshow();
     animate(600);
   };
   next.onclick = function(){
     index+=1;
     if(index>5){
       index=1;
     }
     buttonsshow();
     animate(-600);
   };
   //自动播放
   var timer;
    function play(){
      timer= setInterval(function(){
        next.onclick();
      },1000)
    }
    play();
    function stop(){
      clearInterval(timer);
    }
    container.onmouseover=stop;
    container.onmouseout=play;
for(var i=0; i<buttons.length; i++){
  ( function(i){
      buttons[i].onclick=function(){
        var clickindex= parseInt(this.getAttribute('index'));
        var offset = 600*(index-clickindex);
        animate(offset);
        index = clickindex;
        buttonsshow();
      }
  })(i);
}
  }
</script>
</body>
</html>

以上所述是小编给大家介绍的纯JS实现轮播图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
Javascript动态绑定事件的简单实现代码
Dec 25 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
jQuery中slice()方法用法实例
Jan 07 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
Es6 Generator函数详细解析
Feb 24 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vue实现一个炫酷的日历组件
Oct 08 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 Javascript
Python机器学习之决策树和随机森林
Jul 15 Javascript
javascript 操作cookies详解及实例
Feb 22 #Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 #Javascript
js实现简易垂直滚动条
Feb 22 #Javascript
微信小程序 引用其他js文件实现代码
Feb 22 #Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 #Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
Feb 22 #Javascript
JS实现一个简单的日历
Feb 22 #Javascript
You might like
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python抽取指定url页面的title方法
2018/05/11 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
你常见到的runtime exception
2016/09/05 面试题
党支部评议意见
2015/06/02 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书