transition-delay用于设置过渡效果的延迟时间,语法为秒或毫秒单位。可单独使用或与transition-Property配合,实现不同属性的不同延迟。例如transition-delay: 0.5s表示延迟0.5秒后开始过渡;结合transition-property和transition-duration时,按顺序对应各属性的延迟。更常用的是简写transition: property duration delay timing-function,如transition: all 0.3s 0.1s ease表示所有属性变化持续0.3秒、延迟0.1秒、使用ease函数。实际中可用于按钮悬停、菜单逐项展开、页面元素淡入等场景,通过控制延迟实现动画节奏感。关键在于理解“延迟开始”机制及属性值的顺序对应关系。

在css中,可以通过 transition-delay 属性来设置过渡效果的延迟时间。也就是说,你可以控制某个过渡效果在触发后,等待多久才开始执行。
基本语法
transition-delay 的值是一个或多个时间(单位为秒 s 或毫秒 ms),定义每个对应属性的过渡延迟时长。
示例:
.box { transition-delay: 0.5s; }
这表示该元素的过渡将在变化发生后,延迟0.5秒再开始。
与 transition-property 搭配使用
如果你只想对特定属性设置延迟,可以和 transition-property 一起使用,确保延迟只作用于目标属性。
立即学习“前端免费学习笔记(深入)”;
示例:
.box { transition-property: background-color, transform; transition-duration: 0.3s, 0.6s; transition-delay: 0.2s, 0.4s; }
这里,background-color 的过渡延迟0.2秒,transform 延迟0.4秒,各自对应 duration 和 delay 的顺序。
简写形式 transition
更常见的是使用 transition 简写属性,把 duration、delay、timing-function 都写在一起。
格式:
transition: property duration delay timing-function;
示例:
.button { transition: all 0.3s 0.1s ease; }
这表示所有可动画属性在变化时,持续0.3秒,延迟0.1秒后开始,使用 ease 缓动函数。
实际应用场景
- 按钮悬停效果希望文字颜色先变,背景稍后变:给不同属性设置不同 delay。
- 菜单展开时,子项逐个出现:配合 opacity 和 transition-delay 实现错峰动画。
- 页面加载后元素淡入:结合 animation 或 JS 控制类名添加时机,用 delay 控制节奏。
基本上就这些。关键是理解 transition-delay 控制的是“等多久才开始动”,配合简写或分开写都能灵活实现想要的节奏感。不复杂但容易忽略细节顺序。


