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

浏览器兼容性

另见