js学习总结----指定步长实现单方向匀速运动

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id='box'></div>
    <script>
        var oBox = document.getElementById("box");
        var maxLeft = utils.win('clientWidth')-oBox.offsetWidth;
        var step = 5;

        var timer = window.setInterval(function(){
            var curLeft = utils.css(oBox,"left");
            if(curLeft+step >= maxLeft){//边界判断
                utils.css(oBox,"left",maxLeft);
                window.clearInterval(timer);
                return;
            }
            curLeft+=step;
            utils.css(oBox,"left",curLeft);
        },10)

        //问题:当总距离/我们设定的步长 = 不是一个整数。少走一步还差点距离到目标位置,多走一步会超出目标的位置
        //解决:在进行边界判断的时候加上步长来进行处理

    </script>
</body>
</html>

 

posted @ 2017-07-13 09:47  diasa  阅读(560)  评论(0编辑  收藏  举报