基于JavaScript实现无缝滚动效果
本文实例为大家分享了JavaScript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下
- 首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位为绝对定位,在这个实例中,移动的Ul就是绝对定位,否则它根本无法滚动,而它相对于div1滚动,则div1就作为他的相对定位。
- oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;这段代码是实现无缝滚动的核心,使之可以在不论左右滚动的时候都有下一步图片接上去。
- 在操作或者进行比较的时候,都要用offset取值来进行操作或者比较!!!
代码:
无缝滚动2 *{ padding:0; margin:0; } #div1{ position:relative; width:800px; height:200px; background:red; margin:100pxauto; overflow:hidden; } #div1ul{ position:absolute; left:0; top:0; } #div1ulli{ float:left; list-style:none; width:200px; height:200px; } window.onload=function() { varoDiv=document.getElementById('div1'); varoUl=oDiv.getElementsByTagName('ul')[0]; varaLi=oDiv.getElementsByTagName('li'); varaA=document.getElementsByTagName('a'); varspeed=3; oUl.innerHTML=oUl.innerHTML+oUl.innerHTML; oUl.style.width=aLi.length*aLi[0].offsetWidth+'px'; vartimer=setInterval(move,30); functionmove() { 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; }; }; 向左 向右