基于JavaScript实现仿京东图片轮播效果


Posted in Javascript onNovember 06, 2015

js实现仿京东图片轮播效果,当鼠标划在窗口上面停止计时器,鼠标离开窗口,开启计时器,鼠标划在页签上面,停止计时器,手动切换,通过定义计时器封装函数run,封装函数changeOption,实现此效果,代码简单易懂,需要的小伙伴直接复制拷贝转走吧。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    *{margin:0;padding:0;list-style:none;}
    a{text-decoration: none;color: #fff;}
    #flash{width: 730px;height: 454px;margin: 100px auto;position: relative;cursor: pointer;}
    #pic li{position: absolute;top: 0;left: 0;z-index: 1;display: none;}
    #num{position: absolute;left: 40%;bottom: 10px;z-index: 2;cursor:default;}
    #num li{float: left;width: 20px;height: 20px;border-radius: 50%;background: #666;margin: 3px;line-height: 20px;text-align: center;color: #fff;cursor: pointer;}
    #num li.active{background: #f00;}
    .arrow{height: 60px;width: 30px;line-height: 60px;text-align: center;display: block;position: absolute;top:45%;z-index: 3;display: none;}
    .arrow:hover{background: rgba(0,0,0,0.7);}
    #flash:hover .arrow{display: block;}
    #left{left: 2%;}
    #right{right: 2%;}
  </style>
  <script type="text/javascript">
    function $(id) {
      return typeof id==='string'?document.getElementById(id):id;
    }
    window.onload=function(){
      var index=0;
      var timer=null;
      var pic=$("pic").getElementsByTagName("li");
      var num=$("num").getElementsByTagName("li");
      var flash=$("flash");
      var left=$("left");
      var right=$("right");
      //单击左箭头
      left.onclick=function(){
        index--;
        if (index<0) {index=num.length-1};
        changeOption(index);
      }
      //单击右箭头
      right.onclick=function(){
        index++;
        if (index>=num.length) {index=0};
        changeOption(index);
      }      
      //鼠标划在窗口上面,停止计时器
      flash.onmouseover=function(){
        clearInterval(timer);
      }
      //鼠标离开窗口,开启计时器
      flash.onmouseout=function(){
        timer=setInterval(run,2000)
      }
      //鼠标划在页签上面,停止计时器,手动切换
      for(var i=0;i<num.length;i++){
        num[i].id=i;
        num[i].onmouseover=function(){
          clearInterval(timer);
          changeOption(this.id);
        }
      }    
      //定义计时器
      timer=setInterval(run,2000)
      //封装函数run
      function run(){
        index++;
        if (index>=num.length) {index=0};
        changeOption(index);
      }
      //封装函数changeOption
      function changeOption(curindex){
        console.log(index)
        for(var j=0;j<num.length;j++){
          pic[j].style.display="none";
          num[j].className="";
        }
        pic[curindex].style.display="block";
        num[curindex].className="active";
        index=curindex;
      }
    }
  </script>
</head>
<body>
  <div id="flash">
    <ul id="pic">
      <li style="display:block"><img src="http://img13.360buyimg.com/da/jfs/t2242/262/578407619/87636/4ffe0c5/56187ed2Nfed9a5b3.jpg" alt=""></li>
      <li><img src="http://img13.360buyimg.com/da/jfs/t2143/111/577347825/96150/e27180bd/561889b3N42ee62b5.jpg" alt=""></li>
      <li><img src="http://img20.360buyimg.com/da/jfs/t1825/234/1750370913/97529/b9229832/560b5ad3N054605f7.jpg" alt=""></li>
      <li><img src="http://img10.360buyimg.com/da/jfs/t2026/215/573306345/95654/a0211937/5618a735N1b3d8423.jpg" alt=""></li>
      <li><img src="http://img20.360buyimg.com/da/jfs/t2065/362/579832759/78899/6f349917/5618c680N3752bacc.jpg" alt=""></li>
      <li><img src="http://img10.360buyimg.com/da/jfs/t2023/45/384256123/101565/9b6e5daf/5604bdceN8c7d2ccf.jpg" alt=""></li>
    </ul>
    <ol id="num">
      <li class="active">1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ol>
    <a href="javascript:;" class="arrow" id="left"><</a>
    <a href="javascript:;" class="arrow" id="right">></a> 
  </div>
</body>
</html>

以上代码是不是很简单啊,基于javascrit实现仿金东图片轮播效果就制作成功了,由于时间原因没有给大家展示效果图,还请大家见谅。

Javascript 相关文章推荐
JS字符串函数扩展代码
Sep 13 Javascript
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
本地搭建微信小程序服务器的实现方法
Oct 27 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
实现非常简单的js双向数据绑定
Nov 06 #Javascript
浅析javascript中的事件代理
Nov 06 #Javascript
详解javascript中的事件处理
Nov 06 #Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 #Javascript
jQuery Real Person验证码插件防止表单自动提交
Nov 06 #Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 #Javascript
javascript如何实现暂停功能
Nov 06 #Javascript
You might like
重置版宣传动画
2020/04/09 魔兽争霸
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
node.js调用C++函数的方法示例
2018/09/21 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python决策树之C4.5算法详解
2017/12/20 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
Python中base64与xml取值结合问题
2019/12/22 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
财务内勤岗位职责
2014/04/17 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
秋收起义观后感
2015/06/11 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
Python中的min及返回最小值索引的操作
2021/05/10 Python