使用requestAnimationFrame polyfill时是否需要清除超时?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用requestAnimationFrame polyfill时是否需要清除超时?相关的知识,希望对你有一定的参考价值。

对于旧版浏览器,有一个requestAnimationFrame polyfill,它可以追溯到setTimeout()。我想知道我们是否需要在使用window.requestAnimationFrame()时清除此超时。以下是代码段的示例:

var timeout;

window.addEventListener( 'scroll', function() {
    if ( timeout ) {
        window.cancelAnimationFrame( timeout );
    }

    timeout = window.requestAnimationFrame( myFunction );
}, false );

或者它应该是这样的(如果是,那么你可以解释一下原因吗?):

window.addEventListener( 'scroll', function() {
    window.requestAnimationFrame( myFunction );
}, false );
答案

它应该用作本机requestAnimationFrame。只是认为这是本机实现,如果你需要调用cancelRequestAnimationFrame,那么你需要调用它。

以上是关于使用requestAnimationFrame polyfill时是否需要清除超时?的主要内容,如果未能解决你的问题,请参考以下文章

js动画之requestAnimationFrame回调函数代替setTimeout

requestAnimationFrame 使用

详解Web API requestAnimationFrame

requestAnimationFrame 使用小记

requestAnimationFrame简介

秀才提笔忘了字:javascript使用requestAnimationFrame实现动画