RequestAnimationFrame polyfill

时间:2015-12-07 21:52:25

标签: javascript css3

我刚刚浏览了vivus.js的来源并遇到了以下代码:

requestAnimFrame = (function () {
  return (
    window.requestAnimationFrame       ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame    ||
    window.oRequestAnimationFrame      ||
    window.msRequestAnimationFrame     ||
    function(/* function */ callback){
      return window.setTimeout(callback, 1000 / 60);
    }
  );
})();

现在是ofcource我运行最新版本的chrome并且第一个条件是真的,实际返回的是什么,但我真正关心的是最后一个条件I.E。

function(/* function */ callback){
    return window.setTimeout(callback, 1000 / 60);
}

为什么1000 / 60?我理解为什么使用setTimeout,但1000/60真正做了什么?任何人都可以解释这部分吗?

P.S。我知道它是一个数学问题,但由于它涉及大量代码,我不得不在SO上发布。

谢谢。

1 个答案:

答案 0 :(得分:3)

每秒60帧是大多数人认为动画平滑动画的最低帧速率。

因此每1000秒(1s)运行一次。