如何使用 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;
有任何想法吗?
更新: 我需要获取我的 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));
谢谢...