【JavaScript】用原生js实现无缝滚动的实例

无缝滚动

功能:向左滑、向右滑、鼠标移入滑动暂停、鼠标移出滑动继续。

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {padding: 0; margin: 0; }
        #div1 {width: 1200px; height: 300px; background: red; margin: 100px auto; position: relative; overflow: hidden;}
        #div1 ul {position: absolute; left: 0; top: 0;}
        #div1 ul li {list-style: none; width: 300px; height: 300px; float: left;}
        #div1 img {width: 100%;}
    </style>
</head>

<body>
    <input type="button" value="向左走" id="btn1">
    <input type="button" value="向右走" id="btn2">
    <div id="div1">
        <ul>
            <li><img src="img1.jpg"></li>
            <li><img src="img2.jpg"></li>
            <li><img src="img3.jpg"></li>
            <li><img src="img4.jpg"></li>
        </ul>
    </div>
    <script>
        window.onload = function () {
            var oDiv = document.getElementById('div1')
            var oUl = oDiv.getElementsByTagName('ul')[0]
            var aLi = oUl.getElementsByTagName('li')
            var oBtn1 = document.getElementById('btn1') //向左走
            var oBtn2 = document.getElementById('btn2') //向右走
            var timer = null
            var turn = 5 //用来控制方向,-5向左 5向右
            oUl.innerHTML += oUl.innerHTML //将li元素复制
            oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';
            function move() {
                if (oUl.offsetLeft < -oUl.offsetWidth / 2) { //向左走,当滑动到一半时
                    oUl.style.left = '0px'
                }
                if (oUl.offsetLeft > 0) { //向右走
                    oUl.style.left = -oUl.offsetWidth / 2 + 'px'
                }
                oUl.style.left = oUl.offsetLeft + turn + 'px'
            }
            timer = setInterval(move, 30)
            oDiv.onmouseover = function () {
                clearInterval(timer)
            }
            oDiv.onmouseout = function () {
                timer = setInterval(move, 30)
            }
            oBtn1.onclick = function(){
                turn = -5
            }
            oBtn2.onclick = function(){
                turn = 5
            }

        }
    </script>

</body>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值