1

さて、私は奇妙なジレンマを抱えています。要素の位置を取得して出力すると、実際にはオブジェクトの実際の座標が取得されます。以下のように:

var el = $('#element');

var position = el.position();

console.log(position);

与えられた出力は次のようなものです:

Object { top=0, left=120}

うまく機能しますが、オブジェクトをposition:absoluteに設定すると、奇妙な出力が得られます。以下のコードは、私がやっていることの例です。

var el = $('#element');

var position = el.position();

el.css({
    top: position.top + 'px',
    left: position.left + 'px',
    position: 'absolute'
});

console.log(position);

今、私が得る出力は以下のようなものです。

Object { top=0, left=0}

そのため、position:absoluteが上と左をリセットしているようです。

私の質問は... jQueryを使用してposition:absoluteに設定しながら、オブジェクトの左と上の位置を設定するにはどうすればよいですか?

http://jsfiddle.net/sbe3C/2/

更新 2: 以下でコメントしたように、この問題は、 each() ループ内のオブジェクトに絶対位置を設定しようとした場合にのみ発生しているようです。以下にjsfiddleの例を示します。

http://jsfiddle.net/geocalleo/atNFz/

4

1 に答える 1

2

私はそれを考え出した!問題は、アイテムを下から上に繰り返す必要があることでした。StackOverflow に関する別の質問から回答を得ました。

だから今はこんな感じ

$($('body > div').get().reverse()).each

jsFiddleをチェックしてください。

于 2013-03-08T20:57:26.483 に答える