2012-12-09 12 views
5

Próbuję uzyskać współrzędne dokumentu (globalnego) elementu (elementu DOM) w Dart, który w czystym JavaScript byłem można uzyskać za pośrednictwem jQuery za pomocą $ ("some_selector"). offset().

Przeglądałem dart Dart: interfejsy API html, ale bez powodzenia.

jakieś pomysły? dziękuje

Odpowiedz

6

Nie ma natywnej funkcji na Element, aby uzyskać te współrzędne.

Oto wersja rzutkę z dnia 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); 
} 

Innym rozwiązaniem jest użycie jQuery.offset() poprzez js-interop:

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

Hi Alexandre , to byłoby doskonałe żądanie funkcji na dartbug.com/new :) –

+0

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