【发布时间】:2012-10-15 04:49:34
【问题描述】:
我有以下 HTML:
<div class="rotate"></div>
还有以下 CSS:
@-webkit-keyframes rotate {
to {
-webkit-transform: rotate(360deg);
}
}
.rotate {
width: 100px;
height: 100px;
background: red;
-webkit-animation-name: rotate;
-webkit-animation-duration: 5s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
我想知道是否有办法(使用 JavaScript)来停止动画,但让它完成当前的迭代(最好通过更改一个或几个 CSS 属性)。我尝试将-webkit-animation-name 设置为空白值,但这会导致元素以不和谐的方式跳回其原始位置。我也尝试将-webkit-animation-iteration-count 设置为1,但效果相同。
【问题讨论】:
-
作为替代方案,我建议使用 javascript 动画。
-
计算当前迭代并将迭代计数设置为该值,是否可能/可跟踪?
-
尝试为 div 创建另一个类,使其样式位于您希望它完成的位置,然后使用 javascript,在动画到达您想要的点时将该类应用于 div它停止。