首页 > 代码库 > JS无缝滚动

JS无缝滚动

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title></title></head><style>    *{margin:0;padding:0;}    #div1 {width:712px;height:108px;margin:100px auto;}    #div1 ul {position:absolute;left:0;top:0;}    #div1 ul li{width:200px;height:200px;background: red;position: absolute;left:200px;top:150px;}</style><script>//无缝滚动window.onload= function () {    var oDiv=document.getElementById(div1);    var oUl=oDiv.getElementsByTagName(ul)[0];    var aLi=oul.getElementsByTagName(li);    var speed=2;    oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;//4+4==8    oUl.style.width=aLi[0].offsetWidth*aLi.length+px;    function move(){ //定时器函数        if(oUl.offsetLeft<-oUl.offsetWidth/2){//offsetLeft偏移量,往左是负数,offsetWidth宽度,是正数。左移            oUl.style.left=0;//坐标重置为0        }        if(oul.style.left>0){//右移,负数变0表示右移过了4个li了            oUl.offsetLeft=-oUl.offsetWidth/2+‘px‘;//左偏移量 变成 -宽度一半,表示8个li居中.0不加px,有数字的要加px        }        oUl.style.left=oDiv.offsetLeft+speed+px;//给当前对象左边距+2px右移 并返回    }    var timer=setInterval(move,30);//参数里面运行有名函数move不用带(),这是js区别于java的不同点    //添加鼠标移入事件    oDiv.onmouseover=function(){//这是匿名类实现方式        clearInterval(timer);    };    oDiv.onmouseout=function(){        timer=setInterval(move,30);    };    document.getElementsByTagName(a)[0].onclick=function(){        speed=-2;    };    document.getElementsByTagName(a)[1].onclick=function(){        speed=2;    };}</script><body><a href="javascript:;">向左走</a><a href="javascript:;">向右走</a><div id="div1">    <ul>        <li><img src="img2/1.jpg" /></li>        <li><img src="img2/2.jpg" /></li>        <li><img src="img2/3.jpg" /></li>        <li><img src="img2/4.jpg" /></li>    </ul></div></body></html>

 

JS无缝滚动