无缝滚动

第一种方法:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
        *{
            margin:0px;
            padding:0px;
        }
            #box{
                position: relative;
                880px;
                height:220px;
                margin:50px auto;
                border:1px solid #999;
                overflow: hidden;
            }
            #box ul{   /*ul不能设置宽度*/
                height:200px;
                position:absolute;
                top:0;
                left:0px;
                padding:10px 0;
            }
            #box ul li{
                200px;
                height:200px;
                float:left;
                padding:0 10px;
                list-style: none;
            }
            #box ul li img{
                200px;
                height:200px;
            }
        </style>
        <script>
            window.onload=function(){
                var oBox=document.getElementById("box");
                var oUl=oBox.children[0];
                var aLi=oUl.getElementsByTagName('li');
                var oLeft=document.getElementById("left");
                var oRight=document.getElementById("right");
                var timer=null;
                var speed=0;
                oUl.innerHTML+=oUl.innerHTML;          //复制一份oUl的内容
                oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';//设置oUl的宽度
                clearInterval(timer);
                function tab(){
                    var l=oUl.offsetLeft+speed;
                                                //向左运动,当l小于oUl宽度的一半时,l=0
                    if(l<=-oUl.offsetWidth/2){   
                        l=0;
                    }
                                                //向右运动,当l大于0时,l=oUl宽度的一半
                    if(l>0){l=-oUl.offsetWidth/2}  
                    oUl.style.left=l+'px';
                }
                timer=setInterval(tab,30);
                oLeft.onclick=function(){
                    speed=-6;
                }
                oRight.onclick=function(){
                    speed=6;
                }
                oBox.onmouseover=function(){
                    clearInterval(timer);
                }
                oBox.onmouseout=function(){
                    timer=setInterval(tab,30);
                }
                document.onkeydown=function(ev){
                    var e=ev||event;
                    if(e.keyCode==37){
                        speed=-6;
                    }
                    if(e.keyCode==39){
                        speed=6;
                    }
                }
            }
        </script>
    </head>
    <body>
        <input type="button" id="left" value="向左"/>
        <input type="button" id="right" value="向右"/>
        <div id="box">
            <ul>
                <li><img src="img/0.jpg"></img></li>
                <li><img src="img/1.jpg"></img></li>
                <li><img src="img/2.jpg"></img></li>
                <li><img src="img/3.jpg"></img></li>
            </ul>
        </div>
    </body>
</html>

第二种方法:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
        *{
            margin:0px;
            padding:0px;
        }
            #box{
                position: relative;
                880px;
                height:220px;
                margin:50px auto;
                border:1px solid #999;
                overflow: hidden;
            }
            #box ul{
                height:200px;
                position:absolute;
                top:0;
                left:0px;
                padding:10px 0;
            }
            #box ul li{
                200px;
                height:200px;
                float:left;
                padding:0 10px;
                list-style: none;
            }
            #box ul li img{
                200px;
                height:200px;
            }
        </style>
        <script>
            window.onload=function(){
                var oBox=document.getElementById("box");
                var oUl=oBox.children[0];
                var aLi=oUl.getElementsByTagName('li');
                var oLeft=document.getElementById('left');
                var oRight=document.getElementById('right');
                var timer=0;
                oUl.innerHTML+=oUl.innerHTML;
                oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';
                var w=oUl.offsetWidth/2;  
                var l=0;                    //走的距离
                var speed=0;       //运动的速度
                function tab(){
                    l+=speed;
                    oUl.style.left=(l%w-w)%w+'px';  //l%w保证向右的left不会超过0,保证向左的l等于left
                }
                clearInterval(timer);
                timer=setInterval(tab,30);
                oLeft.onclick=function(){
                    speed=-6;
                }
                oRight.onclick=function(){
                    speed=6;
                }
                oBox.onmouseover=function(){
                    clearInterval(timer);
                }
                oBox.onmouseout=function(){
                    timer=setInterval(tab,30);
                }
                document.onkeydown=function(ev){
                    var e=ev||event;
                    if(e.keyCode==37){speed=-6}
                    if(e.keyCode==39){speed=6}
                }
            }
        </script>
    </head>
    <body>
        <input type="button" id="left" value="向左" />
        <input type="button" id="right" value="向右" />
        <div id="box">
            
            <ul>
                <li><img src="img/0.jpg"></img></li>
                <li><img src="img/1.jpg"></img></li>
                <li><img src="img/2.jpg"></img></li>
                <li><img src="img/3.jpg"></img></li>
            </ul>
        </div>
    </body>
</html>
原文地址:https://www.cnblogs.com/yang0902/p/5705300.html