2

我发现WebKitCSSKeyframesRulewindow对象中有一个函数被调用,但是执行这个函数似乎会导致错误。有谁知道这个功能是如何工作的?有没有修改css3动画关键帧的好方法?

4

1 回答 1

2

WebKitCSSKeyframesRule不是函数:它是在解析样式表时在内部使用的构造函数。

要修改@keyframes规则,您必须先找到它:

var styleSheet = document.styleShees[0], keyframesRule;

for (var i = 0; i < styleSheet.cssRules.length; i++) {
    if (styleSheet.cssRules[i].type === CSSRule.WEBKIT_KEYFRAMES_RULE) {
        keyframesRule = styleSheet.cssRules[i];
        break;
    }
}
alert(keyframesRule instanceof WebKitCSSKeyframesRule); // alerts "true"

有了规则后,您可以使用规则的cssRules属性和addRule,deleteRule方法修改、添加、删除框架规则,就像您通常使用常见样式表所做的那样:

for (var i = 0; i < keyframesRule.cssRules.length; i++)
    alert(keyframesRule.cssRules[i].keyText + " { "
            + keyframesRule.cssRules[i].style.cssText + " }");

这与 alerting 相同keyframesRule.cssRules[i].cssText

显然,这都是vendor prefixed,所以对于 Firefox,你必须使用它MozCSSKeyframesRule,等等。

于 2012-09-07T08:18:14.550 回答