js学习案例:缓速动画

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box {
        width: 200px;
        height: 200px;
        background-color: red;
    }
</style>

<body>
    <button id="btn">点击</button>
    <div id="box"></div>

    <script>
        window.addEventListener("load", function () {
            var btn = document.getElementById("btn");
            var box = document.getElementById("box");
            // 定义变量
            var timeId, current = 0, target = 800;
            // 监听事件
            btn.addEventListener("click", function () {
                clearInterval(timeId);
                timeId = setInterval(function () {
                    // 缓速公式
                    current += (target - current) * 0.1;
                    // 判断
                    if (Math.round(current) >= target) {
                        current = target;
                        clearInterval(timeId);
                    }
                    // 赋值
                    box.style.marginLeft = current + "px";
                }, 50)
            });
        });
    </script>
</body>

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

友情链接更多精彩内容