带有控制按钮的图片滚动

开发 前端
在js中,通常是用setInterval这个函数来执行的,setInterval(func,speed),func表示所要执行的函数,speed表示周期时间,通常用毫秒来表示。

上一次写了一个图片自动滚动功能,没有左右按钮控制的功能。今天花了点时间,写了一个带有左右按钮控制的图片滚动效果。所谓自动滚动,原理就是周期性的执行一个效果。

在js中,通常是用setInterval这个函数来执行的,setInterval(func,speed),func表示所要执行的函数,speed表示周期时间,通常用毫秒来表示。

先看一下效果图:

图片滚动

这里一共有5张图片,而现在为什么只显示4张呢?这里用了css的overflow属性控制一下,我们不可能把所有要滚动的图片都显示出来,那样滚动就毫无意义了,用户不要滚动,就可以看到所有的图片了,也影响页面图片的加载时间。所以要把一些图片隐藏起来。

overflow的作用就是子级的宽度超过了父级的宽度,那么子级超过的宽度为隐藏起来,当然内容也会隐藏起来。

  1. .subBox {  
  2.     padding: 0;  
  3.     margin: 0 10px;  
  4.     width: 830px;  
  5.     overflow: hidden;  
  6. }  
  7. .subBox ul {  
  8.     width: 100000px;  

还有一点要做到无间隙的滚动,子级的宽度很宽,可显示区域如果滚动完了,就会出现空白,这里也考虑到了这一点,解决的方式是:向左滚动,就把最后一张图片放到最前面去,向右滚动就把第一张图片放到后面去。

  1. obj.find("li:last").prependTo(obj);//向左滚动  
  2. obj.find("li:first").appendTo(obj);//向右滚动 

因为是自动滚动的,当用户向鼠标移到图片上时让他停止,这里就用到了clearInterval功能,表示停止周期性滚动

  1. clearInterval(moving); 

下一页,让我们再看具体代码

#p#

  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>带有控制按钮的图片滚动</title> 
  6. <script src="jquery-1.7.min.js" type="text/javascript"></script> 
  7. <script type="text/javascript"> 
  8. $(function(){  
  9.     var left = $("#left");  
  10.     var right = $("#right");  
  11.     var obj = $(".subBox ul");  
  12.     var w = obj.find("li").innerWidth();  
  13.       
  14.     left.click(function(){  
  15.         obj.find("li:last").prependTo(obj);  
  16.         obj.css("margin-left",-w);  
  17.         obj.animate({"margin-left": 0});  
  18.     });  
  19.       
  20.     right.click(function(){  
  21.         obj.animate({"margin-left": -w},function(){  
  22.             obj.find("li:first").appendTo(obj);  
  23.             obj.css("margin-left","0");  
  24.         });  
  25.     });  
  26.       
  27.     var moving = setInterval(function(){left.click()},2000);  
  28.       
  29.     obj.hover(function(){  
  30.         clearInterval(moving);  
  31.     },function(){  
  32.         moving = setInterval(function(){left.click()},2000);  
  33.     })  
  34.       
  35. });  
  36. </script> 
  37. <style type="text/css"> 
  38. * {  
  39.     margin: 0;  
  40.     padding: 0;  
  41.     list-style: none;  
  42. }  
  43.  
  44. .box {  
  45.     margin: 10px auto;  
  46.     width: 880px;  
  47.     text-align: left;  
  48. }  
  49.  
  50. .floatL {  
  51.     padding-top: 45px;  
  52.     float: left;  
  53. }  
  54.  
  55. .subBox {  
  56.     padding: 0;  
  57.     margin: 0 10px;  
  58.     width: 830px;  
  59.     overflow: hidden;  
  60. }  
  61.  
  62. .subBox ul {  
  63.     width: 100000px;  
  64. }  
  65.  
  66. .subBox ul li {  
  67.     width: 210px;  
  68.     float: left;  
  69. }  
  70.  
  71. </style> 
  72. </head> 
  73. <body> 
  74. <div class="box"> 
  75.     <div class="floatL" id="left"><img src="left.gif" alt="" /></div> 
  76.     <div class="subBox floatL"> 
  77.         <ul> 
  78.             <li><img src="0.jpg" alt="" /></li> 
  79.             <li><img src="1.jpg" alt="" /></li> 
  80.             <li><img src="2.jpg" alt="" /></li> 
  81.             <li><img src="3.jpg" alt="" /></li> 
  82.             <li><img src="4.jpg" alt="" /></li> 
  83.         </ul> 
  84.     </div> 
  85.     <div class="floatL" id="right"><img src="right.gif" alt="" /></div> 
  86. </div> 
  87. </body> 
  88. </html> 

效果下载地址:demo下载

 

原文链接:http://www.cnblogs.com/gaoyubao/archive/2012/06/21/2557502.html

责任编辑:张伟 来源: 高玉宝的博客
相关推荐

2023-12-01 11:10:13

CMS开源

2015-01-20 17:15:55

iOS源码滚动视图

2011-09-02 10:03:40

jQuery滚动图片

2011-07-22 13:30:52

JavaScript

2014-10-15 14:07:21

AndroidGlide组件

2009-06-10 21:48:03

滚动图片Javascript特

2009-08-17 10:26:39

鼠标手势

2011-09-02 09:49:29

JQuery图片滚动

2009-11-10 14:13:44

VB.NET图片框

2012-02-24 15:25:45

ibmdw

2010-09-09 14:38:05

CSS背景图片

2020-04-21 16:13:29

LinuxCut命令Unix系统

2011-05-30 10:26:57

2021-02-22 09:23:55

LRU时间HashMap

2010-09-30 15:37:29

ScrollBarJavascrip

2021-07-28 09:00:00

编程语言Kotlin开发

2024-02-21 20:10:18

滚动视频网页

2022-03-31 10:32:08

Mabox LinuLinux

2009-12-25 10:09:34

宽带有线接入技术

2020-05-20 09:24:18

指令流堆栈web安全
点赞
收藏

51CTO技术栈公众号