requestAnimationFrame
(还有对应的 cancelAnimationFrame
) 是新手(没错,说的是笔者本人)学习 JavaScript 实现原生动画的必经之路。这篇文章只单单讲如何简单实现这个函数,而如果你想了解关于 requestAnimationFrame
的概念及原理,请浏览本文最下方的参考文章。
为什么要自己实现?
笔者第一次决定用 JavaScript 实现动画时,就吃了亏。因为 requestAnimationFrame
在 IE9 及以下版本是不兼容的。详情可以看 caniuse。
然后就没办法,这个动画要能在 IE9 上跑,不然直接可以使用 CSS3。所以只能自己尝试去实现 polyfill。
我们在使用 requestAnimationFrame
时候,兼容性是先要考虑的(其实很多新的 API 也需要考虑这个问题)。而在兼容性不满足的情况下,我们就需要 polyfill。