CSS - transition-duration 屬性



CSS transition-duration 屬性確定過渡動畫完成所需的時間。預設值為 0,表示不會發生任何動畫。

可能的值

  • <time> − 此值表示屬性舊值和新值之間過渡的持續時間。當時間為 0s 時,過渡不會發生;相反,兩種狀態會立即更改。時間的任何負值都會使宣告無效。

  • 過渡效果將立即以 0s(或 0ms)的值開始。

  • 正值將導致過渡效果延遲指定的時間量。

  • 負值將立即啟動過渡效果,並在效果中途啟動,模擬動畫,就好像它已運行了指定的時間量一樣。

在使用 CSS 過渡時,您可以分配多個持續時間,每個持續時間對應於主列表中 transition-property 定義的屬性。如果指定的持續時間小於主列表中的持續時間,則使用者代理會重複該列表;如果更多,則會截斷到正確的尺寸。在兩種情況下,CSS 宣告仍然有效。

應用於

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

語法

transition-duration: 6s;

CSS transition-duration - <time>

以下示例演示了 transition-duration: 4s 屬性將過渡效果的持續時間指定為 4s −

<html>
<head>
<style>
   .transition-box {
      font-size: 14px;
      width: 100px;
      padding: 10px;
      border-radius: 10px;
      transition: margin-left, background-color;
      background-color: violet;
      transition-duration: 4s;
   }
   .transition-box:hover {
      background-color: lightblue;
      margin-left: 70px;
   }
</style>
</head>
<body>
   <div class="transition-box">Hover over me</div>
</body>
</html>

CSS transition-duration - 向上滑動效果

以下示例演示了向上滑動效果。當您將滑鼠懸停在方塊上時,其他方塊會一個接一個地出現在彼此之上,並具有不同的過渡持續時間 −

<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-duration: 0.1s;
      background: lightsalmon;
   }
   .box div span:nth-child(2) {
      transition-duration: 2s;
      background: lightgray;
   }
   .box div span:nth-child(3) {
      transition-duration: 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>
廣告

© . All rights reserved.