在Dart中获取Element的全局/文档坐标(又名$('some')。offset())

时间:2012-12-09 17:36:20

标签: dom dart

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

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

任何想法? 感谢

2 个答案:

答案 0 :(得分: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);
}

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

Position jQueryOffset(Element elem) {
  return js.scoped((){
    final offset = js.context.jQuery(elem).offset();
    return new Position(offset.left, offset.top);
  });
}

答案 1 :(得分:-2)