【发布时间】:2011-09-10 05:49:59
【问题描述】:
我有一个 CSS3 动画,需要在单击时重新启动。这是一个显示剩余时间的条形图。我正在使用 scaleY(0) 变换来创建效果。
现在我需要通过将条恢复到 scaleY(1) 并让它再次转到 scaleY(0) 来重新启动动画。 我第一次尝试设置 scaleY(1) 失败了,因为它需要同样的 15 秒才能恢复到全长。即使我将持续时间更改为 0.1 秒,我也需要延迟或链接 scaleY(0) 的分配以完成条形补充。 这么简单的任务感觉太复杂了。
我还发现了一个有趣的技巧,通过从文档中删除元素,然后重新插入它的克隆来重新启动动画: http://css-tricks.com/restart-css-animation/
它有效,但有没有更好的方法来重新启动 CSS 动画? 我正在使用 Prototype 和 Move.js,但我不限于它们。
【问题讨论】:
-
您可以在更新的博客文章中阅读另一种强制重排元素的技术:
element.offsetWidth = element.offsetWidth; -
根据您的 CSS-Tricks 链接,我发现克隆是最好的解决方案。
-
TL;DR:
e.style.animation = 'none'; e.offsetHeight; e.style.animation = ...;或者,如果你正在使用类:e.classList.remove('a'); e.offsetHeight; e.classList.add('a');
标签: javascript css