jQuery: offset()メソッド

offset()メソッドは、指定された要素のドキュメント上での表示位置を取得します。
戻り値はtopleftの2つの値を持つオブジェクトです。

offset().topはドキュメントの上端から指定要素までの距離です。 offset().leftはドキュメントの左端から指定要素までの距離です。 厳密に言うとボーダーの外側までの距離となります。

注意点: offset()メソッドは可視状態の要素に対して機能します。(後述)

offset() コード例


// offset()で表示位置を取得
var num = $('#div1').offset().top;

console.log(num);      // Object { top: 82, left: 8 }
console.log(num.top);  // 82
console.log(num.left); // 8

片方だけ(例えばtopだけ)を取得するなら

// offset().top
var num = $('#div1').offset().top;

console.log(num);  // 82

display:noneの要素は取得できない

offset()メソッドはdisplay: noneの要素に対しては機能しません。 次のような結果になります。


// #div2 が display: noneの場合
var num = $('#div2').offset();
console.log(num);      // Object { top: 0, left: 0 }
console.log(num.top);  // 0
console.log(num.left); // 0

jQuery入門