animation-delay用于设置动画开始前的延迟时间,单位为秒(s)或毫秒(ms)。正值延迟启动,0为立即开始,负值则跳过动画前段。可为多个动画分别设置逗号分隔的延迟值,常用于控制页面元素依次出现、轮播图动画、表单提示等场景,提升视觉节奏与用户体验。

CSS中的 animation-delay 属性用于定义动画开始播放前的等待时间。也就是说,它控制动画在应用后延迟多久才开始执行,单位可以是秒(s)或毫秒(ms)。这个属性对于创建有节奏感或按顺序触发的动画效果非常有用。
基本语法与取值
animation-delay 的语法很简单:
animation-delay:其中 可以是正数、负数或0:
-
正数值:表示动画将在指定时间后开始。例如
animation-delay: 2s;表示延迟2秒后开始动画。 - 0:默认值,表示动画立即开始。
-
负数值:表示动画立即开始,但会从动画序列的中间位置开始播放。例如
animation-delay: -1s;相当于跳过前1秒的动画内容。
实际应用示例
假设我们有一个元素希望在页面加载后1.5秒开始淡入动画:
立即学习“前端免费学习笔记(深入)”;
.fade-in {opacity: 0;
animation-name: fadeIn;
animation-duration: 1s;
animation-delay: 1.5s;
}
@keyframes fadeIn {
to { opacity: 1; }
}
这样,元素会在1.5秒后启动淡入过程,持续1秒完成。
多个动画的延迟设置
如果一个元素应用了多个动画,animation-delay 也可以设置多个值,用逗号分隔,分别对应每个动画的延迟:
.multi-animation {animation-name: slideIn, grow;
animation-duration: 0.8s, 1s;
animation-delay: 0.5s, 1s;
}
这里第一个动画 slideIn 延迟0.5秒开始,第二个动画 grow 延迟1秒开始。
常见使用场景
- 页面加载时,让不同模块依次出现,增强视觉层次。
- 轮播图中,控制每张图片动画的出场时机。
- 表单提示动画,延迟显示帮助信息。
- 配合 JavaScript 动态添加类名时,预留布局或交互准备时间。
基本上就这些。合理使用 animation-delay 能让动画更自然、更有条理,提升用户体验。注意不要过度延迟,以免影响内容可读性或造成用户等待焦虑。










