window.requestAnimationFrame()如何兼容所有浏览器
时间: 2023-11-01 15:00:01 浏览: 143
js中window对象的方法1
`window.requestAnimationFrame()`是一个现代浏览器提供的API,但是为了兼容所有浏览器,可以使用以下代码:
```javascript
// 兼容各浏览器requestAnimationFrame
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = (window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback) {
return setTimeout(callback, 1000 / 60);
});
}
// 兼容各浏览器cancelAnimationFrame
if (!window.cancelAnimationFrame) {
window.cancelAnimationFrame = (window.cancelRequestAnimationFrame ||
window.webkitCancelAnimationFrame ||
window.webkitCancelRequestAnimationFrame ||
window.mozCancelAnimationFrame ||
window.mozCancelRequestAnimationFrame ||
window.msCancelAnimationFrame ||
window.msCancelRequestAnimationFrame ||
window.oCancelAnimationFrame ||
window.oCancelRequestAnimationFrame ||
function(id) {
clearTimeout(id);
});
}
```
这个代码段会先检查浏览器是否提供了`window.requestAnimationFrame()`和`window.cancelAnimationFrame()`,如果没有,那么就会使用一系列浏览器特定的API来模拟这两个函数,从而实现兼容性。
阅读全文