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 相关文章推荐
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
jQuery实现可收缩展开的级联菜单实例代码
Nov 27 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
单元选择合并变色示例代码
May 26 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
jquery实现图片左右切换的方法
May 07 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
Aug 23 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
js中json处理总结之JSON.parse
Oct 14 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
Vue3 响应式侦听与计算的实现
Nov 11 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
安装APACHE
2007/01/15 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
Js动态创建div
2008/09/25 Javascript
JS表的模拟方法
2015/02/05 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
详解flask表单提交的两种方式
2018/07/21 Python
利用nohup来开启python文件的方法
2019/01/14 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python可视化实现KNN算法
2019/10/16 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
护理专业应届毕业生推荐信
2013/11/15 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
自主招生英文自荐信
2015/03/25 职场文书
教师调动申请报告
2015/05/18 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
无线电通信名词解释
2022/02/18 无线电