可動畫的 CSS 屬性
CSS 動畫和過渡依賴於可動畫屬性的概念,除非另有說明,否則所有 CSS 屬性都是可動畫的。每個屬性的動畫型別決定了如何組合(插值、新增或累積)該屬性的值。過渡只涉及插值,而動畫可能使用所有三種組合方法。
注意:每個 CSS 屬性的動畫型別都列在其“正式定義”表中(例如,color)。
注意:每個 CSS 資料型別的插值方法都在其“插值”部分中描述(例如,<length>)。
動畫型別
根據Web Animations規範,主要有四種動畫型別
- 不可動畫化
-
該屬性不可動畫。當它列在動畫關鍵幀中時,它不會被處理,並且不受過渡的影響。
注意:只針對不可動畫屬性的動畫效果仍會表現出動畫效果的通常行為(例如,觸發
animationstart事件)。 - 離散
-
該屬性的值不可加,插值在
50%處從起始值切換到結束值。具體來說,用p表示進度值- 如果
p < 0.5,則V_result = V_start; - 如果
p ≥ 0.5,則V_result = V_end。
- 如果
- 按計算值
-
計算值的相應單獨元件使用該值型別的指定過程進行組合。如果元件的數量或相應元件的型別不匹配,或者如果任何元件值使用離散動畫並且兩個相應值不匹配,則屬性值作為離散組合。
- 可重複列表
-
與按計算值相同,只是如果兩個列表具有不同數量的項,它們首先被重複到最小公倍數數量的項。然後每個項按計算值進行組合。如果一對值無法組合或任何元件值使用離散動畫,則屬性值作為離散組合。
某些屬性具有這些四種類型未涵蓋的特定插值行為。在這種情況下,請參閱屬性的“插值”部分(例如,visibility)。
動畫自定義屬性
對於使用registerProperty()方法註冊的自定義屬性,動畫型別是按計算值,計算值型別由屬性的語法定義確定。
對於未註冊的自定義屬性,動畫型別是離散的。