.offset([coordinates])
メソッドは要素の座標を設定しますが、ドキュメントに対してのみ相対的です。次に、要素の座標を親に対して相対的に設定するにはどうすればよいですか?
メソッドは親に対して「上、左」の値のみを取得することがわかりましたが.position()
、値は設定されていません。
で試しました
$("#mydiv").css({top: 200, left: 200});
しかし、動作しません。
.offset([coordinates])
メソッドは要素の座標を設定しますが、ドキュメントに対してのみ相対的です。次に、要素の座標を親に対して相対的に設定するにはどうすればよいですか?
メソッドは親に対して「上、左」の値のみを取得することがわかりましたが.position()
、値は設定されていません。
で試しました
$("#mydiv").css({top: 200, left: 200});
しかし、動作しません。
position:relative
親に対する相対的な位置を設定するには、親とposition:absolute
要素のを設定する必要があります
$("#mydiv").parent().css({position: 'relative'});
$("#mydiv").css({top: 200, left: 200, position:'absolute'});
これが機能するのは、最も近い位置にある親 (つまり、 default 以外の位置プロパティを持つ最も近い親)position: absolute;
に対して相対的に配置されるためです。static
$("#mydiv").css('top', 200);
$("#mydiv").css('left', 200);
jQueryUIの.positionメソッドを試すことができます。
$("#mydiv").position({
of: $('#mydiv').parent(),
my: 'left+200 top+200',
at: 'left top'
});
動的ページの動的コード オフセット
var pos=$('#send').offset().top;
$('#loading').offset({ top : pos-220});
渡された値が文字列型の場合、その後に 'px' (つまり 90px) が続く必要があることがわかりました。値が整数の場合、px が自動的に追加されます。幅と高さのプロパティはより寛容です (どちらのタイプも機能します)。
var x = "90";
var y = "120"
$(selector).css( { left: x, top: y } ) //doesn't work
$(selector).css( { left: x + "px", top: y + "px" } ) //does work
x = 90;
y = 120;
$(selector).css( { left: x, top: y } ) //does work