JavaScript を使用して、親要素ではなく、ページの上部から要素までの距離を取得する方法を知りたいです。
質問する
127173 次
15 に答える
106
offsetTop は、要素の親のみを調べます。親がなくなるまで親ノードをループし、それらのオフセットを合計します。
function getPosition(element) {
var xPosition = 0;
var yPosition = 0;
while(element) {
xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft);
yPosition += (element.offsetTop - element.scrollTop + element.clientTop);
element = element.offsetParent;
}
return { x: xPosition, y: yPosition };
}
更新: この回答にはいくつかの問題があります。値は本来あるべき値と比べてわずかな違いがあり、場合によっては正しく機能しません。
正確な@eeglbalazsの回答を確認してください。
于 2014-07-18T16:04:20.787 に答える
2
要素の一番上の位置までスクロールします。
var rect = element.getBoundingClientRect();
var offsetTop = window.pageYOffset + rect.top - rect.height;
于 2018-12-20T06:38:29.843 に答える
1
document.getElementById("id").offsetTop
于 2022-01-13T22:06:09.207 に答える
-8
于 2012-08-04T04:48:50.650 に答える