基于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 检测、添加、移除样式(className)函数代码
Sep 08 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
Aug 06 Javascript
Jquery对数组的操作技巧整理
Mar 25 Javascript
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
angular2 NgModel模块的具体使用方法
Apr 10 Javascript
Vue实现滑动拼图验证码功能
Sep 15 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
php下的权限算法的实现
2007/04/28 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
Python实现读取Properties配置文件的方法
2018/03/29 Python
python 默认参数相关知识详解
2019/09/18 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
python的Jenkins接口调用方式
2020/05/12 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
编写strcpy函数
2014/06/24 面试题
最新教师自我评价分享
2013/11/12 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技