CSS - transition-delay 属性



CSS transition-delay 属性确定当属性值发生变化时,在开始过渡效果之前等待的时间量。此属性可以应用于正在过渡的单个属性,也可以应用于 transition 简写属性。

可能的值

  • <time> − 它指定在属性值发生变化后,在过渡效果开始之前等待的时间量。

延迟可以为零、正数或负数。

  • 过渡效果将立即以 0s(或 0ms)的值开始。

  • 正值会导致过渡效果延迟指定的时间量。

  • 负值将立即并部分地开始过渡效果,模拟动画,就像它已经运行了指定的时间量一样。

CSS 允许您为过渡属性设置不同的延迟。这些延迟与 transition 属性属性定义的属性相对应。如果延迟较少,则会重复使用;否则,它们将被截断以匹配属性的数量。在两种情况下,CSS 声明仍然有效。

应用于

所有元素,::before::after 伪元素。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

语法

transition-delay: 3s; transition-delay: 2s, 4ms;

CSS transition-delay - <time> 值

以下示例显示,当您将鼠标悬停在框上时,背景颜色平滑地更改为 greenyellow,并且填充在 4 秒内增加到 20px,延迟 2 秒 -

Open Compiler
<html> <head> <style> .transition-box { font-size: 14px; width: 100px; padding: 5px; margin: 10px; transition: padding, background-color; background-color: lightskyblue; transition-delay: 2s; transition-duration: 4s; } .transition-box:hover { background-color: greenyellow; padding: 20px; } </style> </head> <body> <div class="transition-box">Hover over me</div> </body> </html>

CSS transition-delay - 不同的延迟时间

以下示例演示如何创建向上滑动效果。当您将鼠标悬停在框上时,框会一个接一个地出现,并具有不同的延迟和背景颜色 -

Open Compiler
<html> <head> <style> .container { display: grid; grid-template-columns: repeat(3, 1fr); height: 100px; } .box { text-align: center; padding: 1rem; background-color: lightskyblue; margin: 0 5px; border-radius: 8px; position: relative; overflow: hidden; } .box div { text-decoration: none; font-size: 20px; display: block; } .box div span { display: block; background: lightcyan; padding: 10px; font-size: 16px; position: absolute; bottom: 0; left: 0; width: 100%; transform: translateY(100%); transition: transform 0.5s ease-in-out, opacity 0.3s ease-in-out; } .box:hover div span { transform: translateY(0); } .box div span:nth-child(1) { transition-delay: 0.5s; background: lightsalmon; } .box div span:nth-child(2) { transition-delay: 1s; background: lightgray; } .box div span:nth-child(3) { transition-delay: 1.5s; background: lightgreen; } </style> </head> <body> <div class="container"> <div class="box"><div>Hover Over Me <span>First</span> <span>Second</span> <span>Third</span> </div> </div> </div> </body> </html>
广告