如何使用jQuery找出當前可見屏幕(視口)上元素的絕對位置?使用jQuery在屏幕上元素的絕對位置
我有position:relative
,所以offset()只會給出父級內的偏移量。
我有分層divs,所以$("#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;
任何想法?
更新: 我需要得到我的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));
謝謝...
'offset()'返回偏移量關係這份文件,對你如何定位你的元素無關緊要。一個元素的相對位置,以及任何東西,如何在滾動上發生變化?你確定你不只是在尋找'scrollTop()'? – adeneo
如果樣式爲'position:relative',則offset()將返回父元素的偏移量。 – ATOzTOA
滾動時,元素和屏幕頂部之間的距離會發生變化,對吧? – ATOzTOA