Juste une supposition, mais je pense que cela a quelque chose à voir avec les flottants et les calculs dans jQuery.
Float est un type de données qui contient des nombres. Soit des grands nombres ou des nombres avec beaucoup de décimales. En regardant les chiffres, je suis sûr que jQuery utilise des flotteurs.
Peu de choses sur les flotteurs: ils sont inexacts. TRÈS inexact ce qui entraîne souvent des numéros bizarres comme ceux-ci.
Il semble que Google utilise des types de données plus précis pour calculer les positions. Vous devez vous demander, pourquoi jQuery n'utilise pas un type de données précis? C'est en fait une question vraiment facile. jQuery utilise des calculs qui donnent des nombres décimaux (assouplissement, etc.) avec toutes sortes de formes de données (pixels, points, pourcentages, etc.). Si jQuery n'utilisait que des nombres entiers et que vous ne travailleriez qu'avec des pourcentages, vous obtiendriez une animation plutôt moche. C'est pourquoi je pense que jQuery utilise des flotteurs, et cela explique les chiffres douteux.
Enfin, la distance d'une animation jQuery est calculée en utilisant une distance et un temps. Disons que jQuery "met à jour" votre DOM 60 fois par seconde et que vous souhaitez déplacer votre élément de 60 pixels en une seule seconde, cela déplacerait votre élément d'un seul pixel sur chaque "mise à jour". Cependant, si vous souhaitez déplacer votre élément de 61 pixels en une seconde, vous n'avez pas à réfléchir pour savoir qu'il en résultera un nombre douteux ... Votre élément se déplacerait de 1,01666667 pixels par seconde. Cela explique aussi pourquoi je pense que jQuery utilise des flotteurs ...
Je crains que vous ne puissiez rien y faire. Vous pourriez juste arrondir les nombres.
L'animation est-elle exécutée sur l'élément dont vous obtenez la position? Cela ressemble à des erreurs d'arrondi de la méthode 'animate()'. –
Nous ne pouvions pas savoir sans voir votre code. Assurez-vous que votre #wrapperDiv est position: relative; – SMacFadyen
Comme les autres gars disent, nous ne pouvons pas aider à voir du code. Par exemple, .position() et .offset() donnent les coordonnées correctes dans [cet exemple] (http://jsfiddle.net/MV6Dh/) – Alex