關鍵幀定義了在特定時間的特定屬性值,並在它們之間進行插值,以創造平滑的動畫。
| 屬性 | 類型 | 必要 | 範例 | 值範圍 | 描述 |
|---|---|---|---|---|---|
| id | string | true | - | - | 關鍵幀的唯一標識符。 |
| time | number | true | - | - | 關鍵幀發生的時間,以秒為單位(相對於元素開始時間)。 |
| stateObj | object | true | - | - | 包含此關鍵幀的屬性值的狀態對象。可以包含任何可動畫的屬性,如 x、y、旋轉、scaleX、scaleY、alpha 等。 |
| cp1 | object | false | - | - | 貝茲曲線緩動的第一控制點。坐標是標準化的(0-1 範圍)。示例:{x: 0.25, y: 0.1} |
| cp2 | object | false | - | - | 貝茲曲線緩動的第二控制點。坐標是標準化的(0-1 範圍)。示例:{x: 0.25, y: 1} |
cp1 和 cp2 屬性定義了一個立方貝茲曲線,用於關鍵幀之間的自定義緩動:
cp1: {x: 0.42, y: 0}, cp2: {x: 0.58, y: 1}cp1: {x: 0.42, y: 0}, cp2: {x: 1, y: 1}cp1: {x: 0, y: 0}, cp2: {x: 0.58, y: 1}{
"id": "39ecb75a-3490-43bd-84c2-72366c2f39f2",
"type": "Image",
"start": 0,
"duration": 5,
"trackIndex": 0,
"x": 0,
"y": 0,
"blendMode": "normal",
"anchorX": 1302,
"anchorY": 2312,
"rotation": 0,
"scaleX": 0.23356401384083045,
"scaleY": 0.23356401384083045,
"alpha": 1,
"skewX": 0,
"skewY": 0,
"keyframes": [
{
"id": "800350bd-4a24-4440-904c-ec08a8159508",
"time": 0,
"stateObj": {
"alpha": 0
},
"cp1": {
"x": 0.25,
"y": 0.1
},
"cp2": {
"x": 0.25,
"y": 1
}
},
{
"id": "ce3f9b10-2b9e-4266-8cdb-77167f9f16aa",
"time": 3,
"stateObj": {
"alpha": 1
},
"cp1": {
"x": 0.25,
"y": 0
},
"cp2": {
"x": 0.25,
"y": 0.9
}
}
],
"externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
"ext": "jpeg"
}
當一個元素應用多個動畫方法時:
keyframes 陣列中定義) - 標準屬性動畫animations 陣列中) - 進階動畫,如表達式、路徑、序列如果同一屬性被多個方法動畫化,則優先順序為:
這允許進階動畫在需要時覆蓋關鍵幀值。
time 值是相對於元素的 start 時間,而不是絕對時間線時間。stateObj 中。cp1 和 cp2 貝茲控制點定義。fill、stroke)在 RGB 空間中進行插值。