通过animation-iteration-count和animation-direction可控制css动画次数与方向:前者设播放次数,如infinite为无限循环;后者定义方向,alternate实现往返效果。示例中.ball元素使用infinite和alternate实现左右来回移动的动画,无需javaScript。

在css动画中,控制动画的播放次数和方向是常见需求。通过 animation-iteration-count 和 animation-direction 属性,可以灵活设置动画循环播放的次数以及是否往返播放。
控制播放次数:animation-iteration-count
该属性用于定义动画应播放多少次。
- 数值:如 1、2、3,表示播放具体次数。
- infinite:让动画无限循环播放。
例如,让动画无限循环:
animation-iteration-count: infinite;
立即学习“前端免费学习笔记(深入)”;
如果只想播放两次:
animation-iteration-count: 2;
控制播放方向:animation-direction
该属性决定动画在每次循环时的播放方向。
- normal:每次循环都从头到尾播放(默认)。
- reverse:每次循环都从尾到头反向播放。
- alternate:奇数次正向播放,偶数次反向播放。
- alternate-reverse:奇数次反向播放,偶数次正向播放。
常用于实现“来回滑动”或“呼吸效果”。比如实现一个元素来回移动:
animation-direction: alternate;
animation-iteration-count: infinite;
实际应用示例
以下是一个左右来回移动的小球动画:
@keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } } .ball { animation-name: slide; animation-duration: 1s; animation-iteration-count: infinite; animation-direction: alternate; }
这个动画会无限循环,并在每次循环时改变方向,形成往返效果。
基本上就这些。合理使用 iteration-count 和 direction 能让动画更自然生动,无需javascript干预。