基于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 相关文章推荐
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
Jan 15 Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 Javascript
javascript中创建对象的几种方法总结
Nov 01 Javascript
jquery实现页面常用的返回顶部效果
Mar 04 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
实现非常简单的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
php中JSON的使用方法
2015/04/30 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
Python 文件和输入输出小结
2013/10/09 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
对Python 语音识别框架详解
2018/12/24 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
Linux操作面试题
2012/05/16 面试题
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
促销活动总结模板
2014/07/01 职场文书
经理岗位职责范本
2015/04/15 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年教务工作总结
2015/05/23 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python
Redis实战高并发之扣减库存项目
2022/04/14 Redis