【问题标题】:What are the differences among the vendor prefixed 'requestAnimationFrame' implementations?供应商前缀“requestAnimationFrame”实现之间有什么区别?
【发布时间】:2011-09-02 13:00:41
【问题描述】:

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

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

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


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

  • webkitRequestAnimationFrame
  • mozRequestAnimationFrame
  • msRequestAnimationFrame
  • oRequestAnimationFrame

specification 非常清楚他们应该分享哪些行为,但有人对他们的不同之处有权威的回答吗?

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

【问题讨论】:

    标签: javascript internet-explorer firefox google-chrome requestanimationframe


    【解决方案1】:

    也许是完整解释的最佳页面is this one

    【讨论】:

    • 当我需要点击一个链接来了解答案的含义时,我真的很难过,链接很好,但你应该在这里发布一个非常简短的链接摘要。
    【解决方案2】:

    我找到的最好的资源是

    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)Example: 您可以通过打开控制台并观察动画功能发出的日志消息仅在画布可见时才生成它来判断它是否有效。

    这使得 Opera 和 IE 变体无法解决。

    【讨论】:

    • Opera 11.51 似乎还没有它。 IE 似乎只能从版本 10 及更高版本开始使用它。
    • 哎呀......好吧,随着时间的推移,这个问题可能会变得更加相关。 :)
    猜你喜欢
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2015-03-15
    • 2013-11-28
    • 2017-10-20
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多