我发现WebKitCSSKeyframesRule
window对象中有一个函数被调用,但是执行这个函数似乎会导致错误。有谁知道这个功能是如何工作的?有没有修改css3动画关键帧的好方法?
问问题
875 次
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 回答