offset()
offset()はセレクタで指定した最初の要素の位置を取得したり、すべての要素の位置を変更するためのメソッドです。
引数に何も値を指定しない場合はその要素のドキュメントの左上からの位置を取得できます。上からの位置はtopプロパティで、左から位置はleftプロパティで取得ができます。
$("selector").offset().top;//12
$("selector").offset().left;//23
ただし、非表示の要素やbody要素にborder、padding、marginが含まれる場合はサポートされていません。
visibility:hiddenが指定された要素は取得できますが、display:noneが指定されている場合は取得できません。
引数に、オブジェクトとしてtop、leftを指定することでセレクターで指定した要素の位置を変更することができます。
$("selector").offset({
top:12,
left:23
});/code>
この場合は、CSSでposition: relativeと現在地から指定した位置への移動する際に必要なtopプロパティとleftプロパティが要素に適用されます。
引数に関数オブジェクトを指定することで、セレクタで指定した要素に個別で位置を指定することができます。次のサンプルでは現在の位置から左右に10pxづつ移動させた状態を指定しています。
$("selector").offset(function(index, coords){
return {
top:coords.top+10,
left:coords.left+10
}
});/code>
jQuery 1.2.0での追加/変更offset()はjQuery 1.2.0で追加されたメソッドです
jQuery 1.4.0での追加/変更jQuery 1.4.0より位置の指定が可能になりました。
参考URL
.offset() | jQuery API Documentation
登録日 : 2013年08月01日 最終更新日 : 2013年8月1日