纯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 相关文章推荐
动态控制Table的js代码
Mar 07 Javascript
帮助避免错误的Javascript陷阱清单
May 31 Javascript
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
JS前端笔试题分析
Dec 19 Javascript
js实现微博发布小功能
Jan 12 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
Selenium执行JavaScript脚本的方法示例
Dec 31 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
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版本的cron定时任务执行器使用实例
2014/08/19 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
vue实现底部菜单功能
2018/07/24 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Python同步遍历多个列表的示例
2019/02/19 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
模具设计与制造专业求职信
2014/07/19 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
保研推荐信范文
2015/03/25 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Golang解析JSON对象
2022/04/30 Golang