纯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 相关文章推荐
完整显示当前日期和时间的JS代码
Sep 17 Javascript
JS中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
input:checkbox多选框实现单选效果跟radio一样
Jun 16 Javascript
小米公司JavaScript面试题
Dec 29 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
Angular6笔记之封装http的示例代码
Jul 27 Javascript
小程序实现上传视频功能
Aug 18 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上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
Vuex 入门教程
2018/01/10 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
python实现中文输出的两种方法
2015/05/09 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
EJB的角色和三个对象
2015/12/31 面试题
企业演讲稿范文大全
2014/05/20 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python