兼容性
IE9及以下
与setTimeout()对比
- 不需要设置时间间隔,会贴合浏览器的刷新频率。
- 在切到另外的页面时,会停止运动。(sertTimeout还会运行,但速度变慢)
<head>
<meta charset="UTF-8">
<meta name="Author" content="FengYu">
<title>1</title>
</head>
<script>
var num = 1,
timer;
fn();
function fn() {
document.title = ++num;
timer = requestAnimationFrame(fn)
}
document.onclick = function () {
cancelAnimationFrame(timer)
}
/*function fn() {
document.title = ++num;
setTimeout(fn)
}*/
</script>
requestAnimationFrame()请求动画帧的兼容写法
<script>
window.requestAnimationFrame = window.requestAnimationFrame||function (fn) {return setTimeout(fn,1000/60)}
window.cancelAnimationFrame = window.cancelAnimationFrame ||clearTimeout;
</script>