介绍CSS3中动画的播放次数
什么是CSS3动画
CSS3中动画是一种基于变换的动态效果,可以将元素从一种样式逐渐变为另一种样式。CSS3动画包括两个属性:animation和@keyframes。animation属性用于定义动画的属性,而@keyframes规则用于定义每个阶段的样式变化。
/*示例*/
.box {
animation: rotate 2s infinite;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
上述代码表示一个无限旋转的效果,动画名称为rotate,持续时间为2s,无限循环。关键帧规则由from和to定义,表示0%和100%的状态,中间的状态可以自定义百分比表示。
如何设置动画的播放次数
CSS3中动画的播放次数可以使用animation-iteration-count属性来设置。其可选属性值包括数字、infinite和默认值1。
/*示例*/
.box {
animation: rotate 2s 3;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
上述代码表示旋转2s,并且只播放3次,然后停止。如果将3改为infinite,则表示无限循环。
此外,如果希望动画播放次数运行期间动态控制,可以使用JavaScript动态修改animation-iteration-count属性值。如下示例代码表示点击按钮后动画播放3次。
/*HTML*/
/*CSS*/
#box {
width: 100px;
height: 100px;
background-color: red;
animation: rotate 2s infinite;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
/*JavaScript*/
document.getElementById("animateButton").addEventListener("click", function() {
document.getElementById("box").style.animationIterationCount = "3";
});
总结
CSS3中animation-iteration-count属性可以控制动画的播放次数,其默认值为1,可以设置为数字、infinite来实现有限播放或者无限循环;动画播放次数还可以在运行期间通过JavaScript动态控制。通过掌握这个属性,我们可以实现各种酷炫的动态效果。