2012-12-09 5 views
5

Ich versuche, das Dokument (globale) Koordinaten eines Elements (DOM-Element) in Dart, die in reinem JavaScript ich war kann über jQuery mit $ ('some_selector'). offset() erhalten.

Ich habe durch den Dart Dart gesucht: HTML APIs, aber bisher kein Glück.

irgendwelche Ideen? danke

Antwort

6

Es gibt keine native Funktion auf Element, um diese Koordinaten zu erhalten.

Hier ist ein Dart-Version von 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); 
} 

Eine andere Lösung ist jQuery.offset() zu verwenden über js-interop:

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

Hallo Alexandre , das würde eine ausgezeichnete Feature-Anfrage bei dartbug.com/new machen :) –

+0

Fertig! http://dartbug.com/7267 –