移动动画的封装之终极封装:解决多个元素会互相影响的问题

<!DOCTYPE html>
<html lang="zh-CN">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> 移动动画的封装之终极封装:解决多个元素会互相影响的问题 </title>

    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: #f00;
            position: absolute;
            margin-top: 10px;
        }

        .blue {
            background-color: #00f;
            top: 150px;
        }
    </style>

</head>

<body>
    <!-- 
        解决的是先点移动红,再点移动蓝,会把红色计时器给停止掉

        解决办法:让自己只能停自己的计时器
                不要用全局变量,而是停自己的timerID,以及把新的timerID存在自己身上
     -->
    <input type="button" value="移动蓝色到400" id="btn">
    <input type="button" value="移动红色到1200" id="btn1">
    <input type="button" value="移动蓝色到800" id="btn2">

    <div class="red"></div>
    <div class="blue"></div>

    <script>
        //找到div
        var red = document.querySelector('.red');
        var blue = document.querySelector('.blue');

        function ben(add1, add2) {
            clearInterval(add1.timerID);
            add1.timerID = setInterval(function () {
                var add = add1.offsetLeft;
                if (Math.abs(add2 - add) > 10) {
                    add += add2 > add ? 10 : -10;
                    add1.style.left = add + "px";
                } else {
                    add1.style.left = add2 = "px";
                }
                if (add == add2) {
                    clearInterval(add.timerID);
                }
            }, 20)

        }

        // 加点击事件

        document.getElementById('btn1').onclick = function () {

            ben(red, 1200);
        };

        document.getElementById('btn2').onclick = function () {

            ben(blue, 800);
        };
        document.getElementById('btn').onclick = function () {

            ben(blue, 400);
        };
    </script>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 不要让你拥有的东西透露出除了它们本身以外的社会意义。车子,就是交通工具,房子就世界中属于你的一隅。它们不是你比别人...
    yinshengze阅读 2,472评论 0 1
  • 作家纳博科夫有一次在美国讲俄国文学,他是这么讲的。他先在黑暗的屋子里打开墙角的一盏灯,这是普希金。普希金是俄罗斯文...
    德罗巴007_592阅读 4,350评论 8 21
  • 一、 防晒不只是防晒霜 有 些 妹 纸 对 自 己 的 防 晒 措 施 非 常 自 信:“ 我 每 天 都 有 涂...
    翘乔乔乔阅读 1,468评论 0 2
  • 爱是什么?“爱”,是世间最美好的字眼,温润如玉,暖若春风。 但丁说,爱是美德的种子;罗曼·罗兰说,爱是生命的火焰;...
    圆梦perfect阅读 1,576评论 0 2

友情链接更多精彩内容