问题:I不能取消由色度识别的cancelAnimationFrame使用的requestAnimationFrame。
我尝试了什么:,我使用了console.log,但是没有显示错误。我console.logged的cancelAnimationFrame和我得到了未定义,而请求对应记录很好。我还尝试了不同版本的cancelAnimationFrame,包括前缀版本:
cancelAnimationFrame
webkitCancelAnimationFrame
window.cancelAnimationFrame etc..我还试着将取消代码放入函数中,但正如预期的那样,这并不重要。
的问题:,为什么我不能停止我的requestAnimationFrame?取消它是我推荐的吗?
http://jsfiddle.net/p8hv15j4/2/
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)发布于 2015-10-10 12:52:43
requestAnimationFrame返回一个ID,这是您需要传递给cancelAnimationFrame的内容。
实际上,它的工作方式与set/clearTimeout完全相同--设置它返回一个标识符,然后取消该标识符。
https://stackoverflow.com/questions/33054175
复制相似问题