我需要在Dart中动态创建@keyframe规则并将它们添加到文档样式表中。 这是JS中我正在尝试做的一个例子:
var styleSheet = document.styleSheets[0];
var rule = '@-webkit-keyframes { ... }';
styleSheet.insertRule(rule, 0);
提出了两个问题:
如何在Dart中创建@keyframe规则? API文档中有一个CSSKeyframesRule,但是最新的Dart编辑器说没有这样的类型,Dartium在我尝试使用它时会引发异常(它是否已被弃用?)。我想这不仅仅是JS中的字符串,因为Dart应该处理供应商前缀?
如果我创建规则,如何将其插入样式表。 StyleSheet类似乎没有像insertRule这样的方法。我当然可以只使用crete样式节点并设置其innerHTML,但我不想为每个关键帧规则创建单独的节点。
提前致谢。
答案 0 :(得分:3)
以下代码似乎有效。
void main() {
final styleSheet = document.styleSheets[0] as CssStyleSheet;
final rule = '@-webkit-keyframes mymove { from {top:0px;} to {top:200px;} }';
styleSheet.insertRule(rule, 0);
}