jQuery: offset()メソッド
offset()メソッドは、指定された要素のドキュメント上での表示位置を取得します。
戻り値はtopとleftの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