【javascript】無縫滾動——左右


以前寫過一篇圖片左右滾動的文章,不過圖片是一張一張滾動,今天寫的是幾張圖片一起進行無縫滾動,這是一個常用的 js 效果。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>無縫滾動——左右</title>
    <link rel="stylesheet" type="text/css" href="../css/base.css" media="all"/>
    <style type="text/css">
    #scroll{width:698px;height:108px;margin:50px auto 0;position:relative;overflow:hidden;}
    .btn_left{display:block;width:68px;height:68px;background:url(images/btn.jpg) no-repeat -70px -69px;position:absolute;top:20px;left:1px;z-index:1;}
    .btn_left:hover{background:url(images/btn.jpg) no-repeat -70px 0;}
    .btn_right{display:block;width:68px;height:68px;background:url(images/btn.jpg) no-repeat 1px -69px;position:absolute;top:20px;right:0;z-index:1;}
    .btn_right:hover{background:url(images/btn.jpg) no-repeat 1px 0;}
    #scroll .content{width:546px;height:108px;position:relative;overflow:hidden;margin:0 auto;}
    #scroll ul{position:absolute;}
    #scroll li{float:left;width:182px;height:108px;text-align:center;}
    #scroll li a:hover{position:relative;top:2px;}
    </style>
</head>
<body>
    <div id="scroll">
        <a href="javascript:;" class="btn_left"></a>
        <a href="javascript:;" class="btn_right"></a>
        <div class="content">
            <ul>
                <li><a href="#"><img src="images/1.jpg" width="178" height="108" alt=""/></a></li>
                <li><a href="#"><img src="images/2.jpg" width="178" height="108" alt=""/></a></li>
                <li><a href="#"><img src="images/3.jpg" width="178" height="108" alt=""/></a></li>
                <li><a href="#"><img src="images/4.jpg" width="178" height="108" alt=""/></a></li>
            </ul>
        </div>
    </div>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
    var oDiv = document.getElementById('scroll');
    var oUl = oDiv.getElementsByTagName('ul')[0];
    var aLi = oDiv.getElementsByTagName('li');
    var aBtn = oDiv.getElementsByTagName('a');
    var speed = -1;
    var timer = null;
    oUl.innerHTML += oUl.innerHTML;
    oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';
    timer = setInterval(function(){
        oUl.style.left = oUl.offsetLeft + speed + 'px';
        if(oUl.offsetLeft < - oUl.offsetWidth / 2){
            oUl.style.left = '0';
        }else if(oUl.offsetLeft > 0){
            oUl.style.left = - oUl.offsetWidth / 2 + 'px';
        }
    },30);
    aBtn[0].onclick = function(){
        speed = -1;
    };
    aBtn[1].onclick = function(){
        speed = 1;
    };
    oUl.onmouseover = function(){
        clearInterval(timer);
    };
    oUl.onmouseout = function(){
        timer = setInterval(function(){
            oUl.style.left = oUl.offsetLeft + speed + 'px';
            if(oUl.offsetLeft < -oUl.offsetWidth / 2){
                oUl.style.left = '0';
            }else if(oUl.offsetLeft > 0){
                oUl.style.left = - oUl.offsetWidth / 2 + 'px';
            }
        },30);
    };
};
</script>

如果想要改變移動速度,只需要改變 speed 的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM