这篇文章主要介绍如何基于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>
以上是“如何基于JavaScript实现无缝滚动效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。