在javascript计算时使用CSS动画

Ton*_*ngo 6 javascript css-transitions css-animations

我正在开发一个需要在启动时生成和计算一堆数组的Web应用程序.我希望在发生这种情况时显示加载页面,并且可能会使用css动画播放一些内容,但似乎CSS动画会在执行javascript时挂起.我已经有一个加载栏,它更新了处理的关键事件,但我想使用css-transitions来平滑它.

我想知道在javascript执行时是否有任何方法可以让某些动画生效?

我知道我可以设法不时地向浏览器提供控制以让它刷新,但我发现用javascript在后台计算某些东西只是冻结整个界面是愚蠢的.

编辑:这是我正在谈论的一个愚蠢的例子:http://jsfiddle.net/YWefx/13/ 如果你禁用css过渡,每次迭代都会更新栏,但是如果你启用它,转换将会只发生在最后.所以我最终要么必须在每个循环之间等待400ms,除了动画之外只做4秒钟,最后有一个平滑的动画(失去显示进度条的好处),或者没有设置动画条.

小智 3

CSS3 动画不会被 Javascript 阻止,除非正在进行一些密集的处理(在这种情况下你可能会出现卡顿)。

如果您在加载期间触发它们,我可以看到它们会被延迟,直到到达脚本的该部分。

解决这个问题的一种方法是在脚本的最开始设置超时,以在特定时间触发动画更改。

另一个(也许更好)的选择是使用关键帧。确保在加载开始之前调用它。http://dev.w3.org/csswg/css3-animations/#keyframes

  • 这不会回答他的问题。如果 JavaScript 锁定浏览器线程(长时间运行的一系列代码),CSS 动画将停止。请参阅此处:http://jsfiddle.net/Shmiddty/8p5Ah/1/ 直到 while 循环完成后,动画才会恢复。 (2认同)