前面讲了一些动画的东西:9.讲了前端实现动画效果的一些方法。今天我只想使用RAF。我之前也提到过它的缺点。首先,间隔时间无法设置。第二,我觉得如果一个页面有多个动画,需要调用N个requestAnimationFrame。比如:animation1requestAnimationFrame(fn1)animation2requestAnimationFrame(fn2)animation3requestAnimationFrame(fn3)....是否可以在一个requestAnimationFrame下实现?所以今天简单封装一下,解决上面两个问题。//封装动画RAF函数代替定时器constrafQueue=[];letrafId=0;constrafStart=function(t){rafQueue.forEach((o)=>{if(o.intervalTime==undefined||o.lastTime==0||t-o.lastTime>=o.intervalTime){o.fn(t);o.lastTime=t;返回;};});if(rafQueue.length)window.requestAnimationFrame(rafStart);};constsetRaf=function(fn,intervalTime){rafId++;rafQueue.push({fn,intervalTime,lastTime:0,id:rafId});如果(rafQueue.length==1)window.requestAnimationFrame(rafStart);返回rafId;};constclearRaf=function(id){for(leti=0;i
