基于JavaScript实现无缝滚动效果
程序员文章站
2023-02-24 09:35:36
本文实例为大家分享了javascript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下
首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位...
本文实例为大家分享了javascript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下
- 首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位为绝对定位,在这个实例中,移动的ul就是绝对定位 ,否则它根本无法滚动,而它相对于div1滚动 ,则div1就作为他的相对定位。
- oul.innerhtml=oul.innerhtml+oul.innerhtml;这段代码是实现无缝滚动的核心,使之可以在不论左右滚动的时候都有下一步图片接上去。
- 在操作或者进行比较的时候,都要用offset取值来进行操作或者比较!!!
代码:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>无缝滚动2</title> <style type="text/css"> *{ padding: 0; margin:0; } #div1{ position: relative; width: 800px; height: 200px; background:red; margin:100px auto; overflow: hidden; } #div1 ul{ position: absolute; left: 0; top: 0; } #div1 ul li{ float: left; list-style: none; width: 200px; height: 200px; } </style> <script type="text/javascript"> window.onload=function() { var odiv = document.getelementbyid('div1'); var oul = odiv.getelementsbytagname('ul')[0]; var ali = odiv.getelementsbytagname('li'); var aa = document.getelementsbytagname('a'); var speed = 3; oul.innerhtml=oul.innerhtml+oul.innerhtml; oul.style.width=ali.length*ali[0].offsetwidth+'px'; var timer=setinterval(move,30); function move() { if (oul.offsetleft<=-oul.offsetwidth/2) { oul.style.left="0"; } if(oul.offsetleft>0){ oul.style.left=-oul.offsetwidth/2+'px'; } oul.style.left=oul.offsetleft+speed+'px'; }; odiv.onmouseover=function() { clearinterval(timer); }; odiv.onmouseout=function() { timer=setinterval(move,30); }; aa[0].onclick=function() { speed=-3; }; aa[1].onclick=function() { speed=3; }; }; </script> </head> <body> <a href="javascript:;">向左</a> <a href="javascript:;">向右</a> <div id="div1"> <ul> <li><img src="images/n1.jpg"></li> <li><img src="images/n2.jpg"></li> <li><img src="images/n3.jpg"></li> <li><img src="images/n4.jpg"></li> </ul> </div> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。