Javascript Can';不要使用cancelAnimationFrame。什么也没发生(chrome)

Javascript Can';不要使用cancelAnimationFrame。什么也没发生(chrome),javascript,Javascript,问题:我无法使用chromes识别的cancelAnimationFrame取消requestAnimationFrame 我尝试的内容:我使用了console.log,但没有显示错误。我在console.log中记录了cancelAnimationFrame,但我没有定义,而请求对应项记录得很好。我还尝试了不同版本的cancelAnimationFrame,包括前缀版本: cancelAnimationFrame webkitCancelAnimationFrame window.cancel

问题:我无法使用chromes识别的cancelAnimationFrame取消requestAnimationFrame

我尝试的内容:我使用了console.log,但没有显示错误。我在console.log中记录了cancelAnimationFrame,但我没有定义,而请求对应项记录得很好。我还尝试了不同版本的cancelAnimationFrame,包括前缀版本:

cancelAnimationFrame
webkitCancelAnimationFrame
window.cancelAnimationFrame etc..
我还尝试将取消代码放入函数中,但正如预期的那样,这并不重要

问题:为什么我不能停止我的requestAnimationFrame?取消它是我的建议吗




requestAnimationFrame
返回一个ID,您需要将该ID传递给
cancelAnimationFrame


事实上,它的工作方式与设置/clearTimeout的工作方式完全相同-设置它将返回一个标识符,然后您取消该标识符。

@Ok有效。我不知道为什么我忘记了范围!非常感谢。
var elem = document.getElementById('test');
var currentPos = 0;

var requestAnimationFrame = window.requestAnimationFrame || 
                            window.mozRequestAnimationFrame || 
                            window.webkitRequestAnimationFrame || 
                            window.msRequestAnimationFrame;

function fn() {
    currentPos += 5;

    elem.style.left = currentPos + "px";

    if (Math.abs(currentPos) >= 900) {
        currentPos = -500;
    }
        requestAnimationFrame(fn);
}
fn();

setTimeout(function() {
     cancelAnimationFrame(fn);
   }, 1000)