指定步长的匀速运动

**问题: **
当总距离/设定的步长 不是一个整数时,说明少走一步,还差点才能到,如果多走一步,会超出目标的位置。

解决:
在进行边界判断的时候加上步长来进行处理。

    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);
            clearInterval(timer);
            return;
        }

        curLeft += step;
        utils.css(oBox, 'left', curLeft);
    }, 10);

你可能感兴趣的:(指定步长的匀速运动)