- 想要动画流程,更新频率要60帧每秒,即16.67ms更新一次视图
- setTimeout要手动控制频率,而RAF浏览器会自动控制
- 后台标签或隐藏iframe中,RAF会暂停,而setTimeout依然执行
https://code.h5jun.com/caze/40/edit?html,js,console,output
let div1 = document.querySelector('.div1')let div2 = document.querySelector('.div2')// 180px 3m 180帧function fun1(){console.log(div1.style.width);let width = div1.offsetWidth+1;div1.style.width = width+'px';if(width<230){setTimeout(fun1,16.7) // 自己控制时间}}fun1()function fun2(){console.log(div1.style.width);let width = div2.offsetWidth + 1;div2.style.width = width+'px';if(width < 230){window.requestAnimationFrame(fun2); //不用自己控制时间}}fun2()
