5

Dart で要素 (DOM 要素) のドキュメント (グローバル) 座標を取得しようとしています。純粋な JavaScript では、$('some_selector').offset() を使用して jQuery 経由で取得できました。

Dart dart:html API を調べましたが、今のところうまくいきません。

何か案は?ありがとう

4

2 に答える 2

6

Elementには、その座標を取得するためのネイティブ関数はありません。

jQuery.offset()の Dart 版は次のとおりです。

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 に答える