182 votes

jQuery: Différence entre position () et offset ()

Quelle est la différence entre position() et offset() ? J'ai essayé de faire les choses suivantes dans un événement de clic:

 console.info($(this).position(), $(this).offset());
 

Et ils semblent retourner exactement les mêmes ... (L'élément cliqué est dans une cellule de tableau dans un tableau)

221voto

David Hedlund Points 66192

Cela dépend sur quel contexte l'élément est dans. position renvoie la position par rapport à l'offset parent, et offset fait la même chose par rapport au document. Évidemment, si le document est le décalage parents, ce qui est souvent le cas, elles seront identiques.

Si vous avez une mise en page comme ceci, cependant:

 <div style="position: absolute; top: 200; left: 200;">
     <div id="sub"></div>
 </div>

Puis l' offset pour les sous sera de 200:200, mais son position sera de 0:0.

29voto

jAndy Points 93076

L' .offset() méthode nous permet de retrouver la position d'un élément par rapport au document. Cela contraste avec la .position(), qui récupère la position actuelle par rapport à l'offset parent. Lorsque le positionnement d'un nouvel élément sur le dessus de celui existant pour la manipulation globale (en particulier, pour la mise en œuvre de glisser-déplacer).offset() est le plus utile.

Source: http://api.jquery.com/offset/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X