发现 window.requestAnimationFrame
并不会管理队列。即在同一帧内多次调用window.requestAnimationFrame
会导致下一次重绘时,重复动画。例如:
const animationTwice = () => console.log('I will be invoked twice!')
// 在同一帧内调用两次,导致 animationTwice 执行两次
window.requestAnimationFrame(animationTwice)
window.requestAnimationFrame(animationTwice)
// I will be invoked twice!
// I will be invoked twice!
所以,写了 raf-plus 库来管理 window.requestAnimationFrame
保证在同一帧内最多只会执行一次相同的动画函数。
有不足之处,欢迎指正