我发现窗口对象中有一个名为WebKitCSSKeyframesRule
的函数,但似乎执行此函数会导致错误。有谁知道这个功能是如何工作的?有没有一种很好的方法来修改css3动画的关键帧?
答案 0 :(得分: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 + " }");
这与警告keyframesRule.cssRules[i].cssText
相同。
显然,这都是供应商前缀,因此对于Firefox,您必须使用MozCSSKeyframesRule
,依此类推。