2012-12-09 28 views
5

Cố gắng lấy tọa độ tài liệu (toàn cục) của Element (DOM Element) trong Dart, trong JavaScript thuần túy có thể nhận được thông qua jQuery với $ ('some_selector'). offset().

Tôi đã xem xét thông qua Dart phi tiêu: html API, nhưng không có may mắn cho đến nay.

bất kỳ ý tưởng nào? cảm ơn

Trả lời

6

Không có hàm gốc trên Element để nhận tọa độ đó.

Dưới đây là phiên bản của Dart của 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); 
} 

Một giải pháp khác là sử dụng jQuery.offset() qua 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 , điều này sẽ làm cho một yêu cầu tính năng tuyệt vời tại dartbug.com/new :) –

+0

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

Các vấn đề liên quan