CSS动画循环需设置animation-iteration-count: infinite,必须写在动画调用处而非@keyframes内;检查是否被覆盖、animation-play-state是否为paused,确保简写中包含infinite且无JS重置干扰。
CSS动画无法循环,通常是因为没有正确设置循环属性。只需在动画规则中添加 animation-iteration-count: infinite;,就能让动画无限重复播放。
这是实现无限循环最直接的方式。它必须写在应用动画的元素上(或在 @keyframes 外部的动画声明中):
animation: slide 2s ease-in-out infinite;
animation-name: slide; animation-duration: 2s; animation-iteration-count: infinite;
@keyframes 内部设置,该属性只对外部动画调用生效有时动画循环失效,是因为后续 CSS 覆盖了 animation-iteration-count:
animation-iteration-count 值,确认是否为 infinite
:hover)或 JS 动态样式中意外设为 1 或具体数字animation 简写,要确保没漏掉 infinite —— 简写中省略该值会默认为 1
即使设了 infinite,动画也可能“看似不循环”:
animation-play-state: paused;,导致动画停在第一轮结束位置display: none 或 opacity: 0 阻断渲染)element.style.animation = "..."——这会重置动画计时,打断连续循环该属性在所有现代浏览器中均支持(包括 Chrome、Firefox、Safari、Edge),无需前缀:
animation-iteration-count: infinite !important; 除非真有覆盖冲突,否则可能掩盖真正问题animation-fill-
mode 混淆:forwards 只影响首尾帧停留,不影响循环次数@keyframes 定义是否有效不复杂但容易忽略。只要保证 infinite 正确写入动画声明,并排除覆盖和暂停干扰,CSS 动画就能稳定循环。