可動畫的 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()方法註冊的自定義屬性,動畫型別是按計算值,計算值型別由屬性的語法定義確定

對於未註冊的自定義屬性,動畫型別是離散的。

另見