2016-05-21 17 views
0

相対配置された要素の最上位位置をウィンドウに取得する最も正確な方法は何ですか?ウィンドウへの相対要素の位置の取得

私は約getBoundingClientRect()を知っていますが、これは間違った番号を返しました。

私はいくつかの要素を相対的な位置に置いており、offsetTop要素をwindow topに取り出す必要があります。コンテナは、相対的または絶対的に配置されています。親要素を反復処理しないなどの方法はありますか?

+0

コードを教えてください。 'getBoundingClientRect'は間違ってはいけません。 – Lewis

+0

'getBoundingClientRect'は行く方法ですが、スクロールされた距離を加え、clientHeightなどを減算して必要な値を取得する必要があります。 – adeneo

+0

ビューポートに相対的な位置、またはドキュメント全体に対する相対的な位置を意味しますか?ドキュメントの場合、おそらくスクロール位置を考慮していないでしょう。 –

答えて

0
document.querySelectorAll('.your-selector')[0] 
    .getBoundingClientRect().top + window.pageYOffset - document.documentElement.clientTop 
+0

すべての場合に機能しません。スクロールされる他の要素が存在する可能性があります。すべてのスクロール位置を探して、指定された要素からツリーを上らなければなりません –

+0

最初のインラインの位置を報告する可能性があるため、インライン要素が「左」からの距離を測定する「エラー」レポートがある可能性があります要素を代わりにブロックに追加します。最も確かにスパン要素のそれです。しかし、それはまた、ブラウザのベンダーとバージョンに依存するかもしれません。 –

関連する問題