2

要素を絶対位置に設定する前に、要素の現在の位置 (上、左) を取得する必要があります。

これを行う:

var left = $(element).position().left;
$(element).css({'position':'absolute'});  

left は常に 0 になります。しかし、初期位置は 0 ではありません。css() メソッドを使用して絶対位置を設定しない場合、左は右の左位置を返します。この問題を解決する方法について何かアイデアはありますか?

PS : answerng の前に、このバグは jquery bug tracker にも投稿されました。しかし、誰もそこに答えませんでした。私の質問をよく読んでください。位置を取得する方法を尋ねているのではなく、要素のセットに対して同じ位置を取得する理由を尋ねているJquery bug link。以前ではなく、絶対に設定した後、すべての要素に対して同じ位置を取得するのは正常です。それとも私は間違っていますか?

4

2 に答える 2

2

CSSで定義された左の位置を取得しようとしている場合は、使用します

var left = parseInt($element.css("left"));

ドキュメントに対する相対的な位置を取得しようとしている場合は、使用します

var left = $element.offset().left;
于 2013-09-20T16:20:51.403 に答える
0

.offset()ではなくを使用してみてください。これにより、 (静的ではない位置が設定された) HTML の親ではなく.position()、要素に基づいて要素の座標が得られます。document

ドキュメント:

http://api.jquery.com/offset

http://api.jquery.com/position

于 2013-09-20T16:21:32.190 に答える