【发布时间】:2011-02-04 18:18:32
【问题描述】:
我正在尝试通过使用 PNG 和 CSS3 动画来复制 Apple 样式的活动指示器(日晷加载图标)。我让图像旋转并连续进行,但动画完成后似乎有延迟,然后再进行下一次旋转。
@-webkit-keyframes rotate {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
#loading img
{
-webkit-animation-name: rotate;
-webkit-animation-duration: 0.5s;
-webkit-animation-iteration-count: infinite;
-webkit-transition-timing-function: linear;
}
我尝试过更改动画持续时间,但没有任何区别,如果您将其放慢速度说 5 秒,则更明显的是,在第一次旋转之后,在再次旋转之前会暂停。这是我想摆脱的停顿。
非常感谢任何帮助,谢谢。
【问题讨论】:
-
Webkit 特定的代码并没有减少 CSS3.. 考虑到当时没有其他提供商提供相同的功能 :)
-
动画不应该从0跑到359吗?如果它从 0 运行到 360,那么您将在 0 的帧播放两次,因为第 0 帧和第 360 帧将是相同的......
-
@BradParks 另一方面,如果你从 0 转到 359,那么应该在 359.5 发生的动画将被完全跳过。在大多数情况下,0 度和 360 度的重叠会快到难以察觉。
-
@Blazemonger 不一定。您可以在 jsfiddle 中自己尝试一下,看看根据动画持续时间的不同,它可能不会那么微妙。
-
这整个 '359 度' 的事情是愚蠢的 - 你无法控制动画的步骤。假设 60fps 的 1 秒动画是每帧 6 度,所以你应该停在“354 度”。但是就像我说的那样,您无法控制此处的帧速率,因此这是徒劳的。我想一个聪明的实现可以检测到 0-360 并相应地调整。我只是将时间和角度乘以 100 - 即。 0 度到 36000 度,因此理论上的故障只会每 100 次旋转发生一次。但我发现无论你做什么,都会出现动画故障
标签: animation webkit css transform