回答:
それらが同じかどうかは、状況によって異なります。
position
オフセットの親に関連する{left: x, top: y}
オブジェクトを返します
offset
ドキュメントに関連する{left: x, top: y}
オブジェクトを返します。
明らかに、ドキュメントがオフセットの親である場合(多くの場合)、これらは同一になります。オフセット親は「最も近い位置含む要素」です。
たとえば、このドキュメントでは:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
それからはに$('#sub').offset()
なります{left: 200, top: 200}
がそのに.position()
なります{left: 0, top: 0}
。
sub
絶対位置を0:0にすると、オフセットの親の左上隅になります。
.position
1.12.0 =>で更新しましたgithub.com/jquery/jquery/issues/1708
.offset()メソッドは、私たちは、要素の現在位置を取得することを可能にする文書に対して。これを.position()と比較してください。これは、オフセットのparentに対する現在の位置を取得します。グローバル操作(特にドラッグアンドドロップの実装)のために既存の要素の上に新しい要素を配置する場合、.offset()の方が便利です。
ソース:http : //api.jquery.com/offset/
どちらの関数も、幅と高さの2つのプロパティを持つプレーンオブジェクトを返します。
offset()は、ドキュメントに対する相対的な位置を参照します。
position()は、親要素を基準にした位置を参照します
しかし、オブジェクトのcss位置が「絶対」の場合、両方の関数はwidth = 0&height = 0を返します