4

我需要在 Dart 中动态创建 @keyframe 规则并将它们添加到文档样式表中。这是我正在尝试做的 JS 中的一个示例:

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 这样的方法。我当然可以只创建 crete 样式节点并设置其 innerHTML,但我不想为每个关键帧规则创建单独的节点。

提前致谢。

4

1 回答 1

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);
}
于 2012-12-20T09:44:49.130 回答