html5实现无缝滚动的效果

在开发中我们经常会看到这样的应用场景。无缝滚动。就是几张图循环播放。图就不上了 ,不会制作gif。
直接上代码,避免以后重复造车轮。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>走马灯效果</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }

            #div1 {
                background: red;
                width: 1200px;
                height: 250px;
                margin: 100px auto;
                position: relative;
                overflow: hidden;
            }

            #div1 ul {
                position: absolute;
                left: 100;
                top: 0;
            }

            #div1 ul li {
                float: left;
                list-style: none;
                width: 300px;
                height: 250px;
            }

            #div1 ul li img {
                width: 300px;
                height: 250px;
            }
        </style>

        <script type="text/javascript">
            window.onload = function() {
                var oDiv1 = document.getElementById("div1");
                var oUl = oDiv1.getElementsByTagName("ul")[0];
                var aLi = oUl.getElementsByTagName("li");
                var space = -2;

                oUl.innerHTML += oUl.innerHTML;
                oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';

                function play() {
                    if(oUl.offsetLeft < -oUl.offsetWidth / 2) {
                        oUl.style.left = '0';
                    }
                    if(oUl.offsetLeft > 0) {
                        oUl.style.left = -oUl.offsetWidth / 2 + 'px';
                        space = 2;
                    }
                    oUl.style.left = oUl.offsetLeft + space + 'px';
                };
                var timer = setInterval(play, 30);
                oDiv1.onmouseover = function() {
                    clearInterval(timer);
                };
                oDiv1.onmouseout = function() {
                    timer = setInterval(play, 30);
                };
                var oLeft = document.getElementsByTagName("a")[0];
                var oRidht = document.getElementsByTagName("a")[1];
                oLeft.onclick = function() {
                    space = -2;
                }
                oRidht.onclick = function() {
                    space = 2;
                }
            };
        </script>

    </head>

    <body>
        <div>
            <a href="javascript:;">向左运动</a>
            <a href="javascript:;">向右运动</a>
        </div>
        <div id="div1">
            <ul>
                <li>
                    <img src="img/6e6f32045de828a239ea948b261a2783.png" />
                </li>
                <li>
                    <img src="img/7d9cabd86d8aa35f87d1630242919699.jpg" />
                </li>
                <li>
                    <img src="img/d77d3f09a1cd86ee05f9dc069676494b.jpg" />
                </li>
                <li>
                    <img src="img/ed388771ab4a232dbb0a14a8e90d467d.jpg" />
                </li>
            </ul>
        </div>
    </body>

</html>

实现了向左或向右的无缝滚动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值