• JS实现淘宝幻灯片效果


    淘宝幻灯片效果:能自动播放,鼠标指向或者点击数字按钮就能切换图片。

    实现思路:

    1、for循环给数字按钮加上点击事件。

    2.for循环先把按钮的样式清空,再把当前样式设置样式。

    3、给每个按钮添加自定义属性index aBtn[i].index=i aBtn[2]=2 第二个按钮和第二张图片想对应,用运动框架把大图的UL每次移动-150px,因为图片高度是150px。如果移动到第n张图片就是-150*n。

    4、定义变量now,用来自动播放用的。把当前图片赋值给now  now=this.index。

    5、定义自动播放函数。now++ 下一张,if判断,到最后一张图片的时候就把now设置为0,就是第一张。  if(now==aBtn.length)

    6、定义定时器,每2秒就调用一次自动播放函数。

    7、鼠标指向图片时就清除定时器。

    8、鼠标离开图片时就开启定时器。

    View Code
     1 <script>
     2 window.onload=function()
     3 {
     4     var oDiv=document.getElementById('play');
     5     var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
     6     var oUl=oDiv.getElementsByTagName('ul')[0];
     7     var now=0;
     8     
     9     for(var i=0;i<aBtn.length;i++)
    10     {
    11         aBtn[i].index=i;
    12         aBtn[i].onmouseover=function()
    13         {
    14             now=this.index;  //当前值赋给now
    15             tab();
    16         }
    17     };
    18     
    19     function tab()
    20     {    
    21         for(var i=0;i<aBtn.length;i++) 
    22         {
    23             aBtn[i].className='';  //把所有按钮的样式清空
    24         };
    25         aBtn[now].className='active';  //当前按钮样式设置
    26         startMove(oUl,{top:-150*now});  //用运动框架把UL的TOP设置为当前个数*-150,第三张图片就是2*-150
    27     };
    28     
    29     function next()
    30     {
    31         now++;  //切换图片
    32         if(now==aBtn.length)  //如果到了最后一张图片
    33         {
    34             now=0;  //    把图片拉回第一张
    35         }
    36         tab();  //把图片拉回第一张后继续运动
    37     };
    38     
    39     var timer=setInterval(next,2000);  //2秒自动切换图片
    40     
    41     oDiv.onmouseover=function()
    42     {
    43         clearInterval(timer);  //清除定时器
    44     };
    45     
    46     oDiv.onmouseout=function()
    47     {
    48         timer=setInterval(next,2000);  //开启定时器
    49     };
    50 };
    51 </script>

    完整代码:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>淘宝幻灯片上下滑动效果 —— www.zhinengshe.com —— 智能课堂</title>
     6 <link href="css.css" rel="stylesheet" type="text/css" />
     7 <script src="baseCommon.js"></script>
     8 <script>
     9 window.onload=function()
    10 {
    11     var oDiv=document.getElementById('play');
    12     var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
    13     var oUl=oDiv.getElementsByTagName('ul')[0];
    14     var now=0;
    15     
    16     for(var i=0;i<aBtn.length;i++)
    17     {
    18         aBtn[i].index=i;
    19         aBtn[i].onmouseover=function()
    20         {
    21             now=this.index;  //当前值赋给now
    22             tab();
    23         }
    24     };
    25     
    26     function tab()
    27     {    
    28         for(var i=0;i<aBtn.length;i++) 
    29         {
    30             aBtn[i].className='';  //把所有按钮的样式清空
    31         };
    32         aBtn[now].className='active';  //当前按钮样式设置
    33         startMove(oUl,{top:-150*now});  //用运动框架把UL的TOP设置为当前个数*-150,第三张图片就是2*-150
    34     };
    35     
    36     function next()
    37     {
    38         now++;  //切换图片
    39         if(now==aBtn.length)  //如果到了最后一张图片
    40         {
    41             now=0;  //    把图片拉回第一张
    42         }
    43         tab();  //把图片拉回第一张后继续运动
    44     };
    45     
    46     var timer=setInterval(next,2000);  //2秒自动切换图片
    47     
    48     oDiv.onmouseover=function()
    49     {
    50         clearInterval(timer);  //清除定时器
    51     };
    52     
    53     oDiv.onmouseout=function()
    54     {
    55         timer=setInterval(next,2000);  //开启定时器
    56     };
    57 };
    58 </script>
    59 </head>
    60 
    61 <body>
    62 
    63 <div class="play" id="play">
    64     <ol>
    65         <li class="active">1</li>
    66         <li>2</li>
    67         <li>3</li>
    68         <li>4</li>
    69         <li>5</li>
    70     </ol>
    71     <ul>
    72         <li><a href="http://www.zhinengshe.com/"><img src="images/1.jpg" alt="广告一" /></a></li>
    73         <li><a href="http://www.zhinengshe.com/"><img src="images/2.jpg" alt="广告二" /></a></li>
    74         <li><a href="http://www.zhinengshe.com/"><img src="images/3.jpg" alt="广告三" /></a></li>
    75         <li><a href="http://www.zhinengshe.com/"><img src="images/4.jpg" alt="广告四" /></a></li>
    76         <li><a href="http://www.zhinengshe.com/"><img src="images/5.jpg" alt="广告五" /></a></li>
    77     </ul>
    78 </div>
    79 </body>
    80 </html>
  • 相关阅读:
    swift中数组和字典得使用,及循环得使用方法(xcode6版本上所写代码)
    ScrollView各属性,及代理方法汇总
    贝塞尔曲线
    iOS基础教程-collectionView的应用
    iOS中,使用block传值简单应用
    ES6~Promise的原理及使用一(copy自: https://www.cnblogs.com/lvdabao/p/jquery-deferred.html)
    react~setState的运行机制
    react ~4.组件table的使用及表格分页处理
    react ~3.动态无限层级顶部菜单和左边菜单设计制作
    react ~2.登陆页面验证码的获取传递与刷新
  • 原文地址:https://www.cnblogs.com/52css/p/2975765.html
Copyright © 2020-2023  润新知