原生js轮播(仿慕课网)


Posted in Javascript onFebruary 15, 2017

效果如下:

原生js轮播(仿慕课网)

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>javascript</title>
 <style>
 *{margin:0;padding:0;border:0;}
 a{text-decoration:none;color:#fff;font-size:40px;line-height:200px;display:none;text-align:center;}
 #container{width:300px;height:200px;margin:50px auto;position:relative;overflow:hidden;}
 #list{width:2100px;height:200px;position:absolute;top:0;}
 #list span{width:300px;height:200px;display:inline-block;text-align:center;font-size:22px;float:left;color:#fff;}
 .one{background:red;}
 .two{background:orange;}
 .three{background:blue;}
 .four{background:green;}
 .five{background:black;}
 #buttons{width:200px;height:30px;position:absolute;bottom:0px;left:100px;z-index:9;}
 #buttons span{display:inline-block;cursor:pointer;width:12px;height:12px;border-radius:6px;background: #2a2a2a}
 #prev{width:40px;height:200px;position:absolute;left:0px;}
 #next{width:40px;height:200px;position:absolute;right:0px;}
 #container .on{background:#fff;}
 </style>
</head>
<body>
 <div id="container">
 <div id="list" style="left:-300px">
 <span class="five">我是黑色第五张</span>
 <span class="one">我是红色第一张</span>
 <span class="two">我是黄色第二张</span>
 <span class="three">我是蓝色第三张</span>
 <span class="four">我是绿色第四张</span>
 <span class="five">我是黑色第五张</span>
 <span class="one">我是红色第一张</span>
 </div>
 <div id="buttons">
 <span class="on" index="1"></span>
 <span index="2"></span>
 <span index="3"></span>
 <span index="4"></span>
 <span index="5"></span>
 </div>
 <a id="prev" href="javascript:;" rel="external nofollow" rel="external nofollow" ><</a>
 <a id="next" href="javascript:;" rel="external nofollow" rel="external nofollow" >></a>
 </div>
 <script>
  var container = document.getElementById('container'),
   list = document.getElementById('list'),
   buttons = document.getElementById('buttons').getElementsByTagName('span'),
   prev = document.getElementById('prev'),
   next = document.getElementById('next'),
   index = 1,
   len = 5,
   interval = 3000,
   animated = false,
   timer;
  function animate(offset){
  if(offset == 0) return;
  animated = true;
  var time = 150,
  inter = 5,
  speed = offset/(time/inter),
  left = parseInt(list.style.left) + offset;
 var go = function(){
 if((speed>0 && parseInt(list.style.left)<left) || (speed<0 && parseInt(list.style.left)>left)){
  list.style.left = parseInt(list.style.left) + speed + 'px';
  setTimeout(go,inter);
 }else{
  list.style.left = left + 'px';
  if(left > -100){
  list.style.left = -300*len + 'px';
  }
  if(left < (-300*len)){
  list.style.left = '-300px'
  }
  animated = false;
 }
 }
 go();
  }
  function showButton(){
  for(var i=0 ; i<buttons.length ; i++){
  if(buttons[i].className == 'on'){
  buttons[i].className = '';
  break;
  }
  }
  buttons[index - 1].className = 'on';
  }
  function play(){
  timer = setTimeout(function(){
  next.onclick();
  play();
  },interval);
  }
  function stop(){
  clearTimeout(timer);
  }
  next.onclick = function(){
  if(animated) {
  return;
  }
  if(index == 5){
  index = 1;
  }else{
  index++;
  }
  animate(-300);
  showButton();
  }
  prev.onclick = function(){
  if(animated) {
  return;
  }
  if(index == 1){
  index = 5;
  }else{
  index--;
  }
  animate(300);
  showButton();
  }
  for (var i = 0; i < buttons.length; i++) {
    buttons[i].onclick = function () {
     if (animated) {
      return;
     }
     if(this.className == 'on') {
      return;
     }
     var myIndex = parseInt(this.getAttribute('index'));
     var offset = -300 * (myIndex - index);
     animate(offset);
     index = myIndex;
     showButton();
    }
   }
  container.onmouseover = function(){
  prev.style.display = next.style.display = 'block';
  stop();
  }
  container.onmouseout = function(){
  prev.style.display = next.style.display = 'none';
  play();
 }
  play();
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
javascript:void(0)是什么意思示例介绍
Nov 17 Javascript
jquery实现显示已选用户
Jul 21 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
Jan 23 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
在node中如何使用 ES6
Apr 22 Javascript
es6学习笔记之Async函数基本教程
May 11 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
js实现随机圆与矩形功能
Oct 29 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 #Javascript
Canvas实现放射线动画效果
Feb 15 #Javascript
微信小程序 开发经验整理
Feb 15 #Javascript
bootstrap table操作技巧分享
Feb 15 #Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 #Javascript
JS原型与原型链的深入理解
Feb 15 #Javascript
js中数组插入、删除元素操作的方法
Feb 15 #Javascript
You might like
十天学会php(2)
2006/10/09 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
python实现的文件同步服务器实例
2015/06/02 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
python中JWT用户认证的实现
2020/05/18 Python
python代码中怎么换行
2020/06/17 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
《小猪家的桃花树》教学反思
2014/04/11 职场文书
课程设计的心得体会
2014/09/03 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
银行转正自我鉴定
2014/09/29 职场文书
门卫岗位职责
2015/02/09 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript