首頁 >web前端 >css教學 >如何使用單一動畫為 CSS 自訂屬性的多個實例設定動畫?

如何使用單一動畫為 CSS 自訂屬性的多個實例設定動畫?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-23 16:10:23326瀏覽

How Can I Animate Multiple Instances of a CSS Custom Property Using a Single Animation?

CSS 中的動畫自訂屬性

在CSS 中,自訂屬性(也稱為CSS 變數)提供了一種用於定義和重複使用樣式的強大機制整個專案的價值觀。它們提供了根據預定義值或變數動態變更樣式屬性的能力。然而,當涉及動畫時,自訂屬性有時會帶來挑戰。

當嘗試使用單一動畫為特定屬性的多個實例設定動畫時,就會出現這樣的挑戰。透過利用自訂屬性,開發人員的目標是讓所有後續實例都受到相同動畫的影響。然而,在某些情況下,只有一個實例經歷所需的動畫,而其餘實例不受影響。

了解動畫中的自訂屬性

問題源自於基本原理動畫中自訂屬性的行為。當使用傳統 CSS 語法定義時,自訂屬性在動畫過程中被視為靜態值。這意味著屬性值不會在動畫持續時間內進行插值,導致突然變化而不是逐漸過渡。

解決方案:使用 @property 規則

為了克服此限制,開發人員可以將 @property 規則與自訂屬性結合使用。 @property 規則允許透過指定變數的類型並提供初始值來定義變數。例如,透過將自訂屬性聲明為數字,瀏覽器可以將該屬性解釋為數值並啟用平滑的過渡和動畫。

範例實作:

考慮以下範例,我們的目標是使用自訂屬性建立閃爍的 div元素opacity:

@property --opacity {
  syntax: '<number>'; /* Define as type number for transition */
  initial-value: 0;
  inherits: false;
}

@keyframes fadeIn {
  50% {--opacity: 1}
}

#test {
  width: 100px;
  height: 200px;
  background-color: black;
  animation: fadeIn 1s infinite;
}

#test div {
  width: 20px;
  height: 20px;
  margin: auto;
  background-color: white;
  opacity: var(--opacity);
}

使用這種方法,自訂屬性--opacity被定義為一個數字,允許動畫在動畫持續時間內平滑地插入不透明度值,實現所需的閃爍效果。

以上是如何使用單一動畫為 CSS 自訂屬性的多個實例設定動畫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn