原生JS實現各種運動之勻速運動

本文給大傢分享一個用原生JS實現的勻速運動,效果如下:

需要註意的是,這種運動效果在實際的開發中用的比較少,用的更多的還是彈性運動和緩沖運動,以下是代碼實現,歡迎大傢復制粘貼及吐槽。

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>原生JS實現各種運動之勻速運動</title>
    <style>
        #div1 {
            width: 100px;
            height: 100px;
            position: absolute;
            background: red;
            left: 0;
            top: 50px;
        }
 
        span {
            width: 1px;
            height: 300px;
            background: black;
            position: absolute;
            left: 300px;
            top: 0;
        }
 
        ;
    </style>
    <script type="text/javascript">
 
        var timer = null;
        function startMove(iTarget) {
 
            var oDiv = document.getElementById('div1');
 
            clearInterval(timer);
            timer = setInterval(function () {
                var iSpeed = 0;
 
                if (oDiv.offsetLeft < iTarget) {
 
                    iSpeed = 7;
 
                } else {
 
                    iSpeed = -7;
                }
                //是否到達終點
                if (Math.abs(oDiv.offsetLeft - iTarget) < 7) {
                    //到達終點
                    clearInterval(timer);
 
                    oDiv.style.left = iTarget + 'px';
                } else {
                    //到達之前
                    oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px';
                }
            }, 30);
        }
    </script>
</head>
 
<body>
    <input type="button" value="開始運動" onclick="startMove(300)" />
    <div id="div1"></div>
    <span></span>
</body>
 
</html>

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: