1. ホーム
  2. jquery

[解決済み] jQuery position()とoffset()の違いについて

2022-04-20 20:59:07

質問

とはどのような違いがあるのでしょうか? position()offset() ? クリックイベントで以下のようなことをやってみました。

console.info($(this).position(), $(this).offset());

そして、全く同じものが返ってくるようです・・・。(クリックされた要素はテーブルのセル内にあります)

解決方法は?

同じかどうかは文脈による。

  • 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} .