JS实现淘宝幻灯片效果的实现方法


Posted in Javascript onMarch 22, 2013

实现思路:

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、鼠标离开图片时就开启定时器。

 <script>
 window.onload=function()
 {
     var oDiv=document.getElementById('play');
     var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
     var oUl=oDiv.getElementsByTagName('ul')[0];
     var now=0;     for(var i=0;i<aBtn.length;i++)
     {
         aBtn[i].index=i;
         aBtn[i].onmouseover=function()
         {
             now=this.index;  //当前值赋给now
             tab();
         }
     };
     function tab()
     {    
         for(var i=0;i<aBtn.length;i++) 
         {
             aBtn[i].className='';  //把所有按钮的样式清空
         };
         aBtn[now].className='active';  //当前按钮样式设置
         startMove(oUl,{top:-150*now});  //用运动框架把UL的TOP设置为当前个数*-150,第三张图片就是2*-150
     };
     function next()
     {
         now++;  //切换图片
         if(now==aBtn.length)  //如果到了最后一张图片
         {
             now=0;  //    把图片拉回第一张
         }
         tab();  //把图片拉回第一张后继续运动
     };
     var timer=setInterval(next,2000);  //2秒自动切换图片
     oDiv.onmouseover=function()
     {
         clearInterval(timer);  //清除定时器
     };
     oDiv.onmouseout=function()
     {
         timer=setInterval(next,2000);  //开启定时器
     };
 };
 </script>

完整代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>淘宝幻灯片上下滑动效果 —— www.zhinengshe.com —— 智能课堂</title>
 <link href="css.css" rel="stylesheet" type="text/css" />
 <script src="baseCommon.js"></script>
 <script>
 window.onload=function()
 {
     var oDiv=document.getElementById('play');
     var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
     var oUl=oDiv.getElementsByTagName('ul')[0];
     var now=0;     for(var i=0;i<aBtn.length;i++)
     {
         aBtn[i].index=i;
         aBtn[i].onmouseover=function()
         {
             now=this.index;  //当前值赋给now
             tab();
         }
     };
     function tab()
     {    
         for(var i=0;i<aBtn.length;i++) 
         {
             aBtn[i].className='';  //把所有按钮的样式清空
         };
         aBtn[now].className='active';  //当前按钮样式设置
         startMove(oUl,{top:-150*now});  //用运动框架把UL的TOP设置为当前个数*-150,第三张图片就是2*-150
     };
     function next()
     {
         now++;  //切换图片
         if(now==aBtn.length)  //如果到了最后一张图片
         {
             now=0;  //    把图片拉回第一张
         }
         tab();  //把图片拉回第一张后继续运动
     };
     var timer=setInterval(next,2000);  //2秒自动切换图片
     oDiv.onmouseover=function()
     {
         clearInterval(timer);  //清除定时器
     };
     oDiv.onmouseout=function()
     {
         timer=setInterval(next,2000);  //开启定时器
     };
 };
 </script>
 </head>
 <body>
 <div class="play" id="play">
     <ol>
         <li class="active">1</li>
         <li>2</li>
         <li>3</li>
         <li>4</li>
         <li>5</li>
     </ol>
     <ul>
         <li><a href="http://www.zhinengshe.com/"><img src="images/1.jpg" alt="广告一" /></a></li>
         <li><a href="http://www.zhinengshe.com/"><img src="images/2.jpg" alt="广告二" /></a></li>
         <li><a href="http://www.zhinengshe.com/"><img src="images/3.jpg" alt="广告三" /></a></li>
         <li><a href="http://www.zhinengshe.com/"><img src="images/4.jpg" alt="广告四" /></a></li>
         <li><a href="http://www.zhinengshe.com/"><img src="images/5.jpg" alt="广告五" /></a></li>
     </ul>
 </div>
 </body>
 </html>
Javascript 相关文章推荐
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
js阻止浏览器默认行为的简单实例
May 15 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 Javascript
Javascript动画效果(1)
Oct 11 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
js实现按座位号抽奖
Apr 05 Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
Vue项目中如何引入icon图标
Mar 28 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
vue实现前台列表数据过滤搜索、分页效果
May 28 Javascript
vue通过数据过滤实现表格合并
Nov 30 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 #Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 #Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 #Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 #Javascript
jquery文字上下滚动的实现方法
Mar 22 #Javascript
JS模块与命名空间的介绍
Mar 22 #Javascript
JS在textarea光标处插入文本的小例子
Mar 22 #Javascript
You might like
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
Laravel 队列使用的实现
2019/01/08 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python中查看变量内存地址的方法
2015/05/05 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
python 实现return返回多个值
2019/11/19 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
电子专业自荐信
2014/07/01 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2014年个人总结范文
2015/03/09 职场文书
赤壁观后感(2)
2015/06/15 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Redis分布式锁Redlock的实现
2021/08/07 Redis