7

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

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

我知道我可以设法不时将控制权交还给浏览器以让它刷新,但我发现使用 javascript 在后台计算某些东西只会冻结你的整个界面是很愚蠢的。

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

4

1 回答 1

3

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

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

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

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

于 2012-10-05T19:49:34.273 回答