web-dev-qa-db-ja.com

jQuery .css( 'left')と.position()。leftが異なる値を返すのはなぜですか?

$(el).css('left')$(el).position().leftで取得する値は異なりますか?

私が$(el).css('left', '100px')に行くと、$(el).css('left')は_110px_ではなく_100px_を返します(そうです、それは常に10%多いです)そして$(el).position().left、それは私に_100_を与えます。

Chromeがこのように動作するのはなぜですか?leftプロパティを使用して、これがjQueryアニメーションにどのように影響するかを確認できます。

UbuntuではChrome 21.0.1180.57を使用しています。

編集1:Chromeにのみ影響を与えているようです、FF 14.0.1は私に同じ値を与えています。

14
Gaurav Dadhania

leftは、CSSのleftプロパティの計算値を返します。

position().leftは、要素の最初のオフセット親を基準にしたx座標を返します。

これらの値は 等しくてもかまいません で、 等しくない でもかまいません。

position().leftは、レンダリングが異なるため、簡単に ブラウザ間で異なる になる場合がありますが、.css("left")は、指定された単位でのみ異なる場合があります。

19
Esailija

このコードを試してください:

$("#div")[0].style.left
3