Làm cách nào để tìm ra vị trí tuyệt đối của một phần tử trên màn hình hiển thị hiện tại (khung nhìn) bằng jQuery?Vị trí tuyệt đối của một phần tử trên màn hình bằng cách sử dụng jQuery
Tôi đang có position:relative
, do đó bù đắp() sẽ chỉ cung cấp khoản bù trừ trong phạm vi gốc.
Tôi có div phân cấp, do đó, $("#me").parent().offset() + $("#me").offset()
cũng không giúp ích gì.
Tôi cần vị trí trong cửa sổ, không phải tài liệu, vì vậy khi tài liệu được cuộn, giá trị sẽ thay đổi.
Tôi biết tôi có thể thêm tất cả các bù trừ gốc, nhưng tôi muốn có giải pháp sạch hơn.
var top = $("#map").offset().top +
$("#map").parent().offset().top +
$("#map").parent().parent().offset().top +
$("#map").parent().parent().parent().offset().top;
Bất kỳ ý tưởng nào?
Cập nhật: Tôi cần có khoảng cách chính xác về pixel giữa phần trên cùng của div và phần trên cùng của tài liệu, bao gồm padding/margins/offset?
Mã của tôi:
HTML
<div id="map_frame" class="frame" hidden="hidden">
<div id="map_wrapper">
<div id="map"></div>
</div>
</div>
CSS
#map_frame{
border:1px solid #800008;
}
#map_wrapper {
position:relative;
left:2%;
top:1%;
width:95%;
max-height:80%;
display:block;
}
#map {
position:relative;
height:100%;
width:100%;
display:block;
border:3px solid #fff;
}
jQuery để thay đổi kích thước bản đồ để lấp đầy màn hình *
var t = $("#map").offset().top +
$("#map").parent().offset().top +
$("#map").parent().parent().offset().top +
$("#map").parent().parent().parent().offset().top;
$("#map").height($(window).height() - t - ($(window).height() * 8/100));
Thanks ...
'offset()' trả về giá trị bù trừ ive vào tài liệu, không quan trọng bạn đã định vị các phần tử của mình như thế nào. Làm thế nào vị trí của một yếu tố liên quan đến, cũng bất cứ điều gì, thay đổi trên di chuyển? Bạn có chắc bạn không chỉ tìm 'scrollTop()'? – adeneo
offset() sẽ trả về giá trị bù trừ từ phần tử gốc nếu kiểu là 'position: relative'. – ATOzTOA
Khi bạn cuộn, khoảng cách giữa phần tử và phần trên cùng của màn hình thay đổi, phải không? – ATOzTOA