Skip to content

Commit 78b5674

Browse files
committed
Support for @Keyframes and @-moz-keyframes rules.
Previously only @-webkit-keyframes was supported.
1 parent e3a1284 commit 78b5674

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

lib/CSSKeyframesRule.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ CSSOM.CSSKeyframesRule.prototype.__defineGetter__("cssText", function() {
2828
for (var i=0, length=this.cssRules.length; i < length; i++) {
2929
cssTexts.push(" " + this.cssRules[i].cssText);
3030
}
31-
return "@-webkit-keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}";
31+
return "@" + (this.vendorPrefix || '') + "keyframes " + this.name + " { \n" + cssTexts.join("\n") + "\n}";
3232
});
3333

3434

lib/parse.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,26 @@ CSSOM.parse = function parse(token) {
138138
state = "keyframesRule-begin";
139139
keyframesRule = new CSSOM.CSSKeyframesRule;
140140
keyframesRule.__starts = i;
141+
keyframesRule.vendorPrefix = '-webkit-';
141142
i += "-webkit-keyframes".length;
142143
buffer = "";
143144
break;
144-
} else if (state === "selector") {
145+
} else if (token.indexOf("@-moz-keyframes", i) == i) {
146+
state = "keyframesRule-begin";
147+
keyframesRule = new CSSOM.CSSKeyframesRule;
148+
keyframesRule.__starts = i;
149+
keyframesRule.vendorPrefix = '-moz-';
150+
i += "-moz-keyframes".length;
151+
buffer = "";
152+
break;
153+
} else if (token.indexOf("@keyframes", i) == i) {
154+
state = "keyframesRule-begin";
155+
keyframesRule = new CSSOM.CSSKeyframesRule;
156+
keyframesRule.__starts = i;
157+
i += "keyframes".length;
158+
buffer = "";
159+
break;
160+
} else if (state == "selector") {
145161
state = "atRule";
146162
}
147163
buffer += character;

0 commit comments

Comments
 (0)