zoukankan      html  css  js  c++  java
  • 封装运动一:div匀速运动到目标位置

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            #box {
                 100px;
                height: 100px;
                background: red;
                position: absolute;
                left: 0;
                top: 100px;
            }
        </style>
    </head>
    
    <body>
        <button id="btn">匀速运动</button>
        <div id="box"></div>
        <script src="tool.js"></script>
        <script>
            /*匀速运动:
            思想:
            1、加计时器;
            2、改变left值(定位);
            */
            var oBtn = ById('btn');
            var oBox = ById('box');
            var timer = null;
            oBtn.onclick = function () {
                clearInterval(timer);
                timer = setInterval(function () {
                    oBox.style.left = oBox.offsetLeft + 2 + "px";
                    //以上只能让div匀速运动下去,不能停止,若要让div在某一时段停止,则需给它设置一个目标值,
                    //目标值即div相对于页面的距离
                    if (oBox.offsetLeft == 400) {
                        clearInterval(timer);
                    }
                }, 30)
            }
            /*简单的匀速运动就写完了,但是这个程序中还存在1个bug,当我们连续点击btn按钮时会发现,div移动的速度
            愈来愈快(原因:每点击一次计时器,就启动一次计时器,启动的计时器越多,div移动的越快)
            解决办法:程序每完成一次,便清除一次计时器
            */
        </script>
    </body>
    
    </html>
  • 相关阅读:
    CocoaPods
    第一篇 理论 1.7 精进-正念-正知,如理作意和觉察力
    构架稳定与可扩展的优惠券系统
    一个产品从0到1的过程
    实现实时定位
    征信比拼重点是数据和连接
    黑产
    爬虫有什么用
    爬虫应用
    甘蔗理论
  • 原文地址:https://www.cnblogs.com/kinoko-1009/p/10278489.html
Copyright © 2011-2022 走看看