animate.css 默认不支持 class 控制 animation-delay,需手动添加 .animatedelay-* 类或使用 CSS 变量 --anim-delay 实现延迟;必须同时包含 animateanimated、效果类和延迟类才能生效。

animate.css 默认不支持直接通过 class 控制 animation-delay,所以像 delay-1s 这样的类不会生效——因为 animate.css 的预设类(如 animate__bounce)只定义了动画名称、持续时间、填充模式等,但没写 animation-delay。想用 class 控制延迟,得自己补充对应规则。
手动添加 delay 类(推荐)
最简单可靠的方式:在项目中额外写几个 delay 工具类,配合 animate.css 使用:
- 在 CSS 中添加如下规则(建议放在 animate.css 引入之后):
.animate__delay-05s { animation-delay: 0.5s; }
.animate__delay-1s { animation-delay: 1s; }
.animate__delay-2s { animation-delay: 2s; }
.animate__delay-3s { animation-delay: 3s; }
然后 HTML 中组合使用:
2秒后弹跳
✅ 注意:必须同时加 animate__animated(基础触发类),再加效果类(如 animate__bounce)和延迟类(如 animate__delay-2s),顺序不影响,但缺一不可。
立即学习“前端免费学习笔记(深入)”;
检查是否遗漏 animate__animated
animate.css v4+ 要求所有动画元素必须有 animate__animated 类,否则动画完全不触发——即使写了 animate__fadeIn 和 animate__delay-1s 也没用。
- 错误写法:
class="animate__fadeIn animate__delay-1s"→ ❌ 无动画 - 正确写法:
class="animate__animated animate__fadeIn animate__delay-1s"→ ✅ 可用
避免被其他样式覆盖
如果延迟仍不生效,可能是 CSS 优先级或冲突问题:
-
浏览器开发者工具中检查元素的
animation-delay是否被覆盖(比如父级设置了animation: none或重置了整个animation属性) - 确保没有用内联 style 写死
animation-delay: 0s,它会覆盖 class 中的值 - animate.css 的类默认是
!important,但自定义 delay 类如果没有加!important,可能被其他高优先级样式压掉(可酌情添加)
进阶:用 CSS 自定义属性动态控制延迟
如果需要 JS 动态调整延迟时间,可以用 CSS 变量:
.animate__delay-var {
animation-delay: var(--anim-delay, 0s);
}
HTML 中设置:
动态延迟
这样比写一堆固定 delay 类更灵活,适合配合 JS 控制多个元素错峰入场。










