基于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编写COM组件的步骤
Mar 17 Javascript
jQuery语法总结和注意事项小结
Nov 11 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 Javascript
angularJS 中$attrs方法使用指南
Feb 09 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
js指定日期增加指定月份的实现方法
Dec 19 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 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
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
php blowfish加密解密算法
2016/07/02 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
理解javascript异步编程
2016/01/27 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python collections模块使用方法详解
2019/08/28 Python
python文件读写代码实例
2019/10/21 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
巴西网上药房:onofre
2016/11/21 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
博士毕业生自我鉴定范文
2014/04/13 职场文书
个人安全承诺书
2014/05/22 职场文书
读书月活动方案
2014/05/22 职场文书
大学生个人求职信例文
2014/07/07 职场文书
2014年班干部工作总结
2014/11/25 职场文书
客房部经理岗位职责
2015/02/02 职场文书
会计人员岗位职责
2015/02/03 职场文书