2012-12-20 20 views
4

我需要在Dart中动态创建@keyframe规则并将它们添加到文档样式表中。 这里是什么,我试图做JS的例子:如何在Dart中创建CSS关键帧规则

var styleSheet = document.styleSheets[0]; 
var rule = '@-webkit-keyframes { ... }'; 
styleSheet.insertRule(rule, 0); 

它提出了两个问题:

  1. 如何创建在DART @keyframe规则? API文档中有一个CSSKeyframesRule,但最新的Dart编辑器说没有这种类型,当我尝试使用它时(它被弃用?),Dartium会引发异常。我想这不仅仅是JS中的字符串,因为Dart应该关注供应商前缀?

  2. 如果我创建一个规则,如何将它插入到样式表中。 StyleSheet类似乎没有像insertRule一样的方法。我当然可以只是克里特风格的节点,并设置其innerHTML,但我不想为每个关键帧规则创建单独的节点。

在此先感谢。

回答

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); 
} 
+1

嗨,阿门,如果解决方案适用于你,你可能要绿色对号吧:) –

+0

是的,谢谢,亚历山大的快速回复。我终于有机会用我的代码尝试它,并按预期工作。我还想通过从'document.styleSheets'中读取''CssKeyframesRule',但是我不能以编程方式创建它们。 –