Les valeurs que j'obtiens pour $(el).css('left')
et $(el).position().left
sont différentes?
Si je vais $(el).css('left', '100px')
, puis $(el).css('left')
elle renvoie 110px
Au lieu de 100px
(Oui, c'est toujours 10% de plus) et si j'évalue $(el).position().left
, cela me donne 100
.
Pourquoi Chrome se comporte-t-il de cette façon? Vous pouvez voir comment cela affecterait les animations jQuery en utilisant la propriété left
.
J'utilise Chrome 21.0.1180.57 sur Ubuntu.
EDIT 1: Semble n'affecter que Chrome, FF 14.0.1 me donne les mêmes valeurs.
left
renvoie la valeur calculée de la propriété CSS left.
position().left
renvoie la coordonnée x par rapport au premier parent de décalage de l'élément.
Ces valeurs peuvent être égales et elles peuvent être non égales .
position().left
peut aussi facilement être différent entre les navigateurs à cause d'un rendu différent alors que .css("left")
ne peut différer que dans les unités données, si c'est le cas.
Essayez ce code:
$("#div")[0].style.left