CSSKeyframesRule

Baseline 广泛可用 *

此功能已相当成熟,可在多种设备和浏览器版本上运行。自 ⁨2016 年 8 月⁩ 起,所有浏览器均已提供此功能。

* 此特性的某些部分可能存在不同级别的支持。

CSSKeyframesRule 接口描述了一个表示 CSS 动画完整关键帧集合的对象。它对应于一个完整的 @keyframes at-rule 的内容。

CSSRule CSSKeyframesRule

实例属性

继承自其祖先 CSSRule 的属性。

CSSKeyframesRule.name

表示关键帧的名称,用于 animation-name 属性。

CSSKeyframesRule.cssRules 只读

返回一个 CSSRuleList,其中包含列表中的关键帧。

CSSKeyframesRule.length 只读

返回列表中关键帧的数量。

实例方法

继承其祖先 CSSRule 的方法。

CSSKeyframesRule.appendRule()

将一个新的关键帧规则插入当前的 CSSKeyframesRule。参数是一个包含关键帧的字符串,格式与 @keyframes at-rule 的条目相同。如果它包含多个关键帧规则,则会抛出一个 SYNTAX_ERRDOMException

CSSKeyframesRule.deleteRule()

从当前的 CSSKeyframesRule 中删除一个关键帧规则。参数是要删除的关键帧的索引,表示为一个解析为 0%100% 之间数字的字符串。

CSSKeyframesRule.findRule()

返回与给定键对应的关键帧规则。键是一个包含要返回的关键帧索引的字符串,解析为 0%100% 之间的百分比。如果不存在这样的关键帧,findRule 返回 null

示例

使用 CSSKeyframesRule

CSS 包含一个关键帧 at-rule。这将是 document.styleSheets[0].cssRules 返回的第一个 CSSRulemyRules[0] 返回一个 CSSKeyframesRule 对象。

css
@keyframes slide-in {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(100%);
  }
}
js
const myRules = document.styleSheets[0].cssRules;
const keyframes = myRules[0]; // a CSSKeyframesRule

访问索引

CSSKeyframesRule 可以像数组一样被索引,其功能与其 cssRules 属性类似。

js
const keyframes = document.styleSheets[0].cssRules[0];

for (let i = 0; i < keyframes.length; i++) {
  console.log(keyframes[i].keyText);
}

// Output:
// 0%
// 100%

规范

规范
CSS 动画级别 1
# interface-csskeyframesrule

浏览器兼容性

另见