javascript无缝滚动示例

效果

图片大小均为200*200;

默认向左循环滚动;

鼠标悬浮暂停,鼠标移走继续滚动;

可以在此基础进行扩展。

下面是代码:

  1 <!doctype html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>无缝滚动</title>
  6     <style>
  7         *{
  8             padding:0px;
  9             margin:0px;
 10         }
 11         #main{
 12             width:800px;
 13             margin:100px auto;
 14             text-align:center;
 15         }
 16         #box{
 17             width:800px;
 18             height:200px;
 19             margin:20px auto;
 20             position:relative;/*相对于起点*/
 21             /*background:red;*/
 22             overflow:hidden;
 23         }
 24         ul{
 25             position:absolute;
 26             left:0px;
 27             top:0px;
 28         }
 29         ul li{
 30             list-style:none;
 31             width:200px;
 32             height:200px;
 33             float:left;
 34             margin:0px 1px;
 35         }
 36         #main button{
 37             padding:10px;
 38             margin:0px 10px;
 39             border:0px;
 40             background:#ddd;
 41         }
 42         #main button:hover{
 43             background:#E9AF16;
 44             cursor:pointer;
 45         }
 46     </style>
 47 </head>
 48 <body>
 49     <div id="main">
 50         <h2>无缝滚动</h2>
 51         <div id="box">
 52             <ul>
 53                 <li><img src="images/p1.jpg" alt="p1"></li>
 54                 <li><img src="images/p2.jpg" alt="p2"></li>
 55                 <li><img src="images/p3.jpg" alt="p3"></li>
 56                 <li><img src="images/p4.jpg" alt="p4"></li>
 57             </ul>
 58         </div>
 59         <button>向左</button><button>向右</button>
 60     </div>
 61
 62     <script>
 63         var oBox=document.getElementById("box");
 64         var aUl=oBox.getElementsByTagName("ul")[0];
 65         var aLi=oBox.getElementsByTagName("li");
 66         var speed=2;
 67
 68         aUl.innerHTML=aUl.innerHTML+aUl.innerHTML;//使li增加一倍
 69         aUl.style.width=aLi[0].offsetWidth*aLi.length+"px";//修改aUl框的宽度,注意单位
 70
 71         function move(){
 72             //向左移动aUl.offsetLeft是负的,我们需要把aUl的一半宽度放置在div右侧
 73             if(aUl.offsetLeft<-aUl.offsetWidth/2){
 74                 aUl.style.left=0+"px";//将ul放回原位
 75             }
 76             //向右移动aUl.offsetLeft是大于0的,我们需要把aUl的一半宽度放置在div左侧
 77             if(aUl.offsetLeft>0){
 78                 aUl.style.left=-aUl.offsetWidth/2+"px";//放置在div左侧,left为负值
 79             }
 80             aUl.style.left=aUl.offsetLeft-speed+"px";//整体移动ul,右
 81         }
 82
 83         timer=setInterval(move,30);
 84
 85         aUl.onmouseover=function(){
 86             clearInterval(timer);
 87         }
 88
 89         aUl.onmouseout=function(){
 90             timer=setInterval(move,30);
 91         }
 92
 93         var aBtn=document.getElementsByTagName("button");
 94         aBtn[0].onmouseover=function(){
 95             speed=2;
 96         }
 97         aBtn[1].onmouseover=function(){
 98             speed=-2;
 99         }
100     </script>
101 </body>
102 </html>
时间: 2024-08-24 17:02:06

javascript无缝滚动示例的相关文章

javascript无缝滚动

无缝滚动好像是互联网广告最大的一个载体,可以用“无处不在”来形容它.不过它比起早期的闪光字体,浮动广告算进步了.由于需求巨大,做前台迟早会遇到它.我先给出结构层部分,再慢慢讲解其实现原理. <dl id="marquee">   <dt>     <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s017.jpg" alt="无缝滚动&quo

javascript无缝滚动原理

相比之下,无缝拼接能避免切换时出现空白,使用户体验更好! 无缝滚动原理: 制作一个双胞胎,内容跟主体内容一致,样式一致,如果横向排列则并排,当切换的时候,就可以弥补主体空白的地方,其他按普通循环操作即可. 源码: <!DOCTYPE html> <html lang="zn-ch"> <head> <meta charset="UTF-8"> <title>demo</title> <st

JavaScript学习笔记5 之 计时器 &amp; scroll、offset、client系列属性 &amp; 图片无缝滚动

一.计时器 setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复) setTimeout ( 函数/名称 , 毫秒数 ) 表示经过一定的毫秒后,只执行一次相应的函数(不重复) 清除计时器: clearInterval( ); clearTimeout( ); 当计时器调用执行完毕时,它将返回一个timer ID, 如果将该ID传递给clearInterval,便可以终止代码的执行. 实例: 页面布局: <div id="wrap"

JavaScript(六)——实现图片上下或者左右无缝滚动

/*! jQuery v1.8.3 jquery.com | jquery.org/license */ (function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toL

javascript实现图片无缝滚动-------Day 27

今天感冒变严重了,鼻涕止不住啊,一卷卫生纸就这样报废了,还是不想吃药,熬熬总能熬过去吧,状态不是很好,看这么个小应用竟然看了很久的时间,到最后才像猛的明白了一样,而且查着好像有好几种做法的,今天先说说这种吧,比较好理解额. 所谓"图片无缝滚动",我们可以这样来理解,如果只用marquee,则需要尾部也离开容器了,头部才能从头部另一端出现,重新进行滚动,如是进行循环,而无缝滚动,就是说一种首尾相连的效果,头部是咬在尾部上的,尾部全部漏出来后,后面紧挨着显示头部的部分,这样首尾相连进行的滚

原生javascript效果:无缝滚动

<style type="text/css"> #con {width:400px; padding:10px; margin:20px auto; text-align:center; border:1px solid #ccc;} #con .roll {width:400px; height:100px; position:relative; overflow:hidden; margin-bottom:10px;} #con ul {position:absolut

Javascript图片无缝滚动

js无缝滚动效果几乎在任何网页上都能看到它的身影,有的可能是使用插件,其实使用原始的javascript比较简单. 主要的是使用js位置知识. 1.innerHTML:设置或获取元素的html标签 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距 3.offsetWidth:设置或获取指定标签的宽度 4.setInterval():设置方法定时启动 5.clearInterval();清除定时器 效果图: 先睹为快:demo <!DOCTYPE html>

javascript实现图片无缝滚动(scrollLeft的使用方法介绍)

<!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <style> .piczhanshi{width:976px;height:167px;border:1px #999999 solid;

javascript小例子:實現四方向文本无缝滚动效果

实现一个文本无缝滚动的效果: <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="zh-CN" class="ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="zh-CN" class="ie7"> <![endif]--> <!--[if IE 8 ]