ped*_*umj 5 html javascript css animation google-chrome
据我了解,您的动画需要 60fps 才能使动画显得流畅。基本上我想做的是在帧开始时进行繁重的计算,这样当渲染真正发生时,就没有太多工作要做了。
我知道您可以使用 window.requestAnimationFrame 在屏幕重绘之前运行函数。但如果该函数需要很长时间,就会导致抖动效果。有没有办法在屏幕重绘后立即运行函数?
我尝试过类似的事情,但它错过并命中:
window.requestAnimationFrame(do_before);
do_before(){
window.setTimeout(do_after, 1);
}
do_after(){
//code to execute after animation frame
}
Run Code Online (Sandbox Code Playgroud)
正如您在下图中看到的,do_after 代码仍在同一帧中执行,因此我有时会得到长帧:
有没有办法让 do_after() 在屏幕完成绘制后运行?
提前致谢
小智 1
没有 API 函数可以执行您想要的操作,但您可以执行以下操作:
window.requestAnimationFrame(function()
{
do_before();
window.requestAnimationFrame(do_after);
});
Run Code Online (Sandbox Code Playgroud)
这确保您do_after在第一个动画帧之后被调用,并在执行完成后触发第二个动画帧。
| 归档时间: |
|
| 查看次数: |
2404 次 |
| 最近记录: |