不能使用cancelAnimationFrame.什么也没发生(chrome)
Can't use cancelAnimationFrame. Nothing happens (chrome)
问题:我不能取消requestAnimationFrame使用的chrome识别的cancelAnimationFrame
我尝试了什么:我使用console.log但没有显示错误。我的控制台。记录了cancelAnimationFrame,我得到了undefined,而请求对应的记录很好。我还尝试了不同版本的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)
requestAnimationFrame
返回一个ID,这是您需要传递给cancelAnimationFrame
的ID。
实际上,它的工作方式与set/clearTimeout
完全相同-设置它返回一个标识符,然后取消标识符。
相关文章:
- Chrome WebKitGetUserMedia
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- chrome扩展更改主机/域警告
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 激活chrome上的chrome.notifications对象
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- JS可以在Chrome中工作,但不能在Firefox中工作
- Chrome加载旧版本的Javascript文件
- 试图阻止Chrome通过扩展关闭
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- chrome在WebSocket握手期间获取新错误