美文网首页
使用setTimeout实现动画

使用setTimeout实现动画

作者: 阿九是只大胖喵 | 来源:发表于2017-03-13 18:38 被阅读0次
        var oBox = document.getElementById('box');
        var maxLeft = utils.win('clientWidth') - oBox.offsetWidth;
        var step = 5;
        var timer = null;
    
        // 使用递归思想完成setTimout的轮询动画:
        // 每一次在执行动画之前,首先把上一次设置的那一个没有用的定时器清除,以节约内存
        function move() {
            window.clearTimeout(timer);
            var curLeft = utils.css(oBox, 'left');
    
            if (curLeft + step >= maxLeft) { // 边界判断: 加上步长计算
                utils.css(oBox, 'left', maxLeft);
                return;
            }
    
            curLeft += step;
            utils.css(oBox, 'left', curLeft);
    
            timer = window.setTimeout(move, 10);
        }
    
        move();
    

    相关文章

      网友评论

          本文标题:使用setTimeout实现动画

          本文链接:https://www.haomeiwen.com/subject/tsjqnttx.html