156

.offset([coordinates])メソッドは要素の座標を設定しますが、ドキュメントに対してのみ相対的です。次に、要素の座標を親に対して相対的に設定するにはどうすればよいですか?

メソッドは親に対して「上、左」の値のみを取得することがわかりましたが.position()、値は設定されていません。

で試しました

$("#mydiv").css({top: 200, left: 200});

しかし、動作しません。

4

7 に答える 7

243

position:relative親に対する相対的な位置を設定するには、親とposition:absolute要素のを設定する必要があります

$("#mydiv").parent().css({position: 'relative'});
$("#mydiv").css({top: 200, left: 200, position:'absolute'});

これが機能するのは、最も近い位置にある親 (つまり、 default 以外の位置プロパティを持つ最も近い親)position: absolute;に対して相対的に配置されるためです。static

于 2012-10-05T11:18:28.710 に答える
43
$("#mydiv").css('top', 200);

$("#mydiv").css('left', 200);
于 2012-10-05T11:09:48.807 に答える
13

jQueryUIの.positionメソッドを試すことができます。

$("#mydiv").position({
  of: $('#mydiv').parent(),
  my: 'left+200 top+200',
  at: 'left top'
});

動作するデモを確認してください。

于 2012-10-05T11:08:26.413 に答える
6

動的ページの動的コード オフセット

var pos=$('#send').offset().top;
$('#loading').offset({ top : pos-220});
于 2015-11-23T07:02:06.717 に答える
6

渡された値が文字列型の場合、その後に '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
于 2015-09-24T22:11:36.773 に答える