停止CSS动画,但让其当前迭代结束
我有以下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
但是这样做也一样。
回答:
收到animationiteration
事件后停止动画。像这样(使用jQuery):
@-webkit-keyframes rotate { to {
-webkit-transform: rotate(360deg);
}
}
.rotate {
width: 100px;
height: 100px;
background: red;
}
.rotate.anim {
-webkit-animation-name: rotate;
-webkit-animation-duration: 5s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
<div class="rotate anim">TEST</div><input id="stop" type="submit" value="stop it" />
$("#stop").click(function() { $(".rotate").one('animationiteration webkitAnimationIteration', function() {
$(this).removeClass("anim");
});
});
请注意,我在.one
这里使用(不是.on
),以便处理程序仅运行一次。这样,以后可以重新启动动画。
以上是 停止CSS动画,但让其当前迭代结束 的全部内容, 来源链接: utcz.com/qa/397748.html