KeyframeEffect: getKeyframes() 方法

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2020 年 7 月以來,它已在各大瀏覽器中可用。

KeyframeEffect 物件的 getKeyframes() 方法返回一個數組,其中包含構成該動畫的計算後的關鍵幀及其計算後的偏移量。

語法

js
getKeyframes()

引數

無。

返回值

返回具有以下格式的物件的序列

屬性值對

動畫的每個關鍵幀中包含的屬性值對的數量。

offset

關鍵幀的偏移量,指定為 0.01.0 之間的數字(包含邊界),或 null。這等同於在 CSS 樣式表中使用 @keyframes 指定開始和結束狀態的百分比。如果關鍵幀是自動間距的,此值將為 null

computedOffset

此關鍵幀的計算偏移量,在生成計算後的關鍵幀列表時計算得出。與上面的 offset 不同,computedOffset 永遠不會是 null

easing

從該關鍵幀到系列中下一個關鍵幀使用的 緩動函式

composite

用於將此關鍵幀中指定的值與底層值組合的 KeyframeEffect.composite 操作。如果正在使用在效果上指定的組合操作,則此項將不存在。

示例

在以下示例中,我們可以使用 getKeyframes() 方法檢查滾動動畫以檢視其關鍵幀。

js
const emoji = document.querySelector("div"); // element to animate

const rollingKeyframes = new KeyframeEffect(
  emoji,
  [
    { transform: "translateX(0) rotate(0)" }, // keyframe
    { transform: "translateX(200px) rotate(1.3turn)" }, // keyframe
  ],
  {
    // keyframe options
    duration: 2000,
    direction: "alternate",
    easing: "ease-in-out",
    iterations: "Infinity",
  },
);

const rollingAnimation = new Animation(rollingKeyframes, document.timeline);
rollingAnimation.play();

// Array [ {…}, {…} ]
console.log(rollingAnimation.effect.getKeyframes());
html
<div>🤣</div>

規範

規範
Web 動畫
# dom-keyframeeffect-getkeyframes

瀏覽器相容性

另見