Как узнать абсолютную позицию элемента на текущем видимом экране (viewport) с помощью jQuery?
У меня есть position:relative
, поэтому offset() будет давать только смещение внутри родителя.
У меня есть иерархические div, поэтому $("#me").parent().offset() + $("#me").offset()
тоже не помогает.
Мне нужна позиция в окне, а не документе, поэтому, когда документ прокручивается, значение должно измениться.
Я знаю, что я мог бы добавить все исходные смещения, но я хочу более чистое решение.
var top = $("#map").offset().top +
$("#map").parent().offset().top +
$("#map").parent().parent().offset().top +
$("#map").parent().parent().parent().offset().top;
Любые идеи?
Update: Мне нужно получить точный промежуток в пикселях между вершиной моего div и верхней частью документа, включая отступы/поля/смещение?
Мой код:
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, чтобы изменить размер карты, чтобы заполнить экран *
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));
Спасибо...