原生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 相关文章推荐
javascript写的一个链表实现代码
Oct 25 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
Feb 09 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
Aug 01 Javascript
JQuery里选择超链接的实现代码
May 22 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
简单的js表格操作
Sep 24 Javascript
Vue.set()实现数据动态响应的方法
Feb 07 Javascript
webpack的tree shaking的实现方法
Sep 18 Javascript
node.js基础知识汇总
Aug 25 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
Sep 08 Javascript
用vue设计一个日历表
Dec 03 Vue.js
微信小程序 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP闭包实例解析
2014/09/08 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
Python实现的凯撒密码算法示例
2018/04/12 Python
python交互界面的退出方法
2019/02/16 Python
python字符串格式化方式解析
2019/10/19 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python调用C/C++的方法解析
2020/08/05 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
超市中秋节活动方案
2014/02/12 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
节能减排倡议书
2014/04/15 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
大学生实训报告总结
2014/11/05 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server