开发者社区> 问答> 正文

js中有段代码不理解,只有3行的,可能是用来让setTimeout的时间更加精准的

 function animate() {
            var start = +new Date();
            //其他的语句
            var finish = +new Date();
            //请问这里为什么要减去(finish-start)
            setTimeout(animate, 1000 - (finish-start));

        }

展开
收起
小旋风柴进 2016-03-19 09:52:11 1983 0
1 条回答
写回答
取消 提交回答
  • 1.每个动画以1秒为单位执行;
    2.finish-start -> 可以理解为一个动画从开始到结束的时间,从代码看,一般每个动画完成的时间会少于1秒;
    3.为了在单位时间(1秒)内完成动画,那么就要进行延迟执行动画,延迟多长时间呢?那就是1秒减掉执行过程要耗费掉的时间,就是我要执行动画的时间。

    总结: 延迟时间 + 动画执行时间 == 1秒

    2019-07-17 19:07:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载