2

编辑:这个问题现在只具有历史意义:

似乎已经删除了供应商前缀和特定于供应商的行为。

如果您愿意,请随意询问有关如何模拟旧的供应商特定行为的问题。


Chrome、Firefox、Internet Explorer 和 Opera 可能requestAnimationFrame分别具有不同的功能:

  • webkitRequestAnimationFrame
  • mozRequestAnimationFrame
  • msRequestAnimationFrame
  • oRequestAnimationFrame

规范非常清楚它们应该共享哪些行为,但是有人对它们的不同之处有权威的回答吗?

编辑:暂时,我接受我自己的答案。我仍然对 IE 10 的实现细节感兴趣,如果 Opera 实现它,Opera 的;如果有任何重大差异,我会更新问题。

4

2 回答 2

1

我发现的最好的资源是

https://developer.mozilla.org/en/DOM/window.requestAnimationFrame

仅地址webkitmoz变体。

moz: 你可以requestAnimationFrame不带参数调用;这将导致MozBeforePaint在浏览器准备好绘制动画帧时触发事件。

window.mozRequestAnimationFrame();
window.addEventListener("MozBeforePaint", function(event){
  //event.timeStamp has the next repaint time
  /* animation code here*/
}, false); 

webkit: 你可以调用requestAnimationFrame第二个参数,它应该是被动画的 DOM 元素;这将导致您的动画函数仅在该 DOM 元素可见时被调用。

(对于 Chrome)示例:您可以通过打开控制台并观察动画功能发出的日志消息仅在画布可见时生成它来判断它是否有效。

这使得 Opera 和 IE 变体没有得到解决。

于 2011-09-02T13:10:21.180 回答
1

也许完整解释的最佳页面是这一页。

于 2011-09-02T13:10:53.143 回答