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 相关文章推荐
javascript之卸载鼠标事件的代码
May 14 Javascript
JavaScript入门学习书籍推荐
Jun 12 Javascript
框架页面高度自动刷新的Javascript脚本
Nov 01 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
PHP中使用微秒计算脚本执行时间例子
Nov 19 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
Nov 29 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
灵活使用console让js调试更简单的方法步骤
Apr 23 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
微信小程序利用云函数获取手机号码
Dec 17 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
20个PHP常用类库小结
2011/09/11 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python模拟登录验证码(代码简单)
2016/02/06 Python
查看Django和flask版本的方法
2018/05/14 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
职业生涯规划设计步骤
2014/01/12 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
八年级作文之感恩
2019/11/22 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis