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));
ありがとう...