5

我试图在 Dart 中获取一个元素(DOM 元素)的文档(全局)坐标,在纯 JavaScript 中,我可以通过 jQuery 使用 $('some_selector').offset() 来获取它。

我一直在查看 Dart dart:html API,但到目前为止还没有运气。

有任何想法吗?谢谢

4

2 回答 2

6

Element上没有获取该坐标的本机函数。

这是 Dart 的jQuery.offset()版本:

class Position {
  num left, top;
  Position(this.left, this.top);
}

Position offset(Element elem) {
  final docElem = document.documentElement;
  final box = elem.getBoundingClientRect();
  return new Position(box.left + window.pageXOffset - docElem.clientLeft,
                      box.top  + window.pageYOffset - docElem.clientTop);
}

另一种解决方案是通过js-interop使用jQuery.offset()

Position jQueryOffset(Element elem) {
  return js.scoped((){
    final offset = js.context.jQuery(elem).offset();
    return new Position(offset.left, offset.top);
  });
}
于 2012-12-10T10:07:22.717 回答
-2

您应该考虑使用此 Dart Element 方法:https ://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:html.Element#id_documentOffset

于 2015-04-17T10:25:35.407 回答