【JavaScript】013.无缝滚动动画

1. 效果图

在这里插入图片描述

2. 代码

图片及源码的github链接
013.无缝滚动动画.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>013.无缝滚动动画</title>
    <link rel="stylesheet" type="text/css" href="css/slider.css">
    <script type="text/javascript">
        window.onload = function(){
            // 整个ul的宽度为2000px,初始图片宽度为1000px
            // 1. 将所有图片复制一份,10张图占满  [ 0px, 2000px ] , 显示的宽度为[ 0px, 1000px ]
            // 2. 初始偏移为0,此时页面上是原来在 [ 0px, 2000px ] 的10张图
            // 3. 向左运动,最多运动到偏移为-1000px,10张图占[ -1000px, 1000px ]
            // 4. 向右运动,从[ -1000px, 1000px ] 到  [ 0px, 2000px ],偏移达到0时需要重置为-1000px

            var oDiv = document.getElementById('slide');
            var oUl = oDiv.getElementsByTagName('ul')[0];  // 取得ul

            oUl.innerHTML = oUl.innerHTML + oUl.innerHTML;

            var iLeft = 0;      // 初始偏移为0
            var iSpeed = -2;    // 移动速度为-2
            var iNowSpeed = iSpeed; // 记录当前速度
            function moving() {
                iLeft += iSpeed;
                if(iLeft < -1000){  // 偏移运动到-1000px,此时将偏移设置为0px
                    iLeft = 0;
                }
                if (iLeft > 0){  // 偏移运动到0px,需要重置为-1000px
                    iLeft = -1000;
                }
                oUl.style.left = iLeft + 'px';  // 设置偏移
            }
            var timer = setInterval(moving, 30);   // 每隔30秒触发moving

            var oBtn1 = document.getElementById('btn1');
            var oBtn2 = document.getElementById('btn2');

            // 左边的button设置往左运动
            oBtn1.onclick = function () {
                iSpeed = -2;
            };
            // 右边的button设置往右运动
            oBtn2.onclick = function () {
                iSpeed = 2;
            };
            // 鼠标停留事件
            oDiv.onmouseover = function(){
                iNowSpeed = iSpeed;
                iSpeed = 0;
            };
            // 鼠标移开事件
            oDiv.onmouseout = function(){
                iSpeed = iNowSpeed;
            }

        }
    </script>
</head>
<body>
     <div class="btns_con">
         <div class="left" id="btn1">&lt;</div>
         <div class="right" id="btn2">&gt;</div>
     </div>
    <div class="list_con" id="slide">
        <ul>
            <li><a href=""><img class="img" src="Guitar/1.jpg" alt="吉他图片"></a></li>
            <li><a href=""><img class="img" src="Guitar/2.jpg" alt="吉他图片"></a></li>
            <li><a href=""><img class="img" src="Guitar/3.jpg" alt="吉他图片"></a></li>
            <li><a href=""><img class="img" src="Guitar/4.jpg" alt="吉他图片"></a></li>
            <li><a href=""><img class="img" src="Guitar/5.jpg" alt="吉他图片"></a></li>
        </ul>
    </div>
</body>
</html>
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值