30
var offset = $(selector).offset();

ページを上下にスクロールすると、オフセット変数の値が変化します。「セレクター」のデフォルト(静的)の位置を維持しながら、正確で固定されたオフセット値が必要です。これを行うにはどうすればよいですか?

4

6 に答える 6

40

スクロール位置を考慮して、いつでもオフセットを計算できます。

var offset_t = $(selector).offset().top - $(window).scrollTop();
var offset_l = $(selector).offset().left - $(window).scrollLeft();
于 2012-04-24T12:32:06.590 に答える
6

同じ問題が発生した後、ここに私の回答を追加したかっただけです:

上記の動作を取得した後、jQuery のドキュメントを調べたところ

jQuery は、非表示の要素のオフセット座標の取得、または body 要素に設定された境界線、マージン、またはパディングの説明をサポートしていません。

オフセットを取得しようとしていた要素は、実際にはdisplay:none;スクロール時に変更された偽のオフセットを与えるように設定されていました (要素は移動しませんでしたが)。

したがって、隠し要素のオフセットを取得しようとしていないことを確認してください! これが誰かを助けることを願っています:)

于 2015-12-04T02:47:45.703 に答える