Quelle est la différence entre position()
et offset()
? J'ai essayé de faire ce qui suit dans un événement de clic:
console.info($(this).position(), $(this).offset());
Et ils semblent retourner exactement la même chose ... (L'élément cliqué est dans une cellule de tableau dans un tableau)
Cela dépend du contexte dans lequel l'élément se trouve. position
renvoie la position par rapport au parent du décalage, et offset
fait de même par rapport au document. Évidemment, si le document est le parent offset, ce qui est souvent le cas, ceux-ci seront identiques.
Si vous avez une mise en page comme celle-ci, cependant:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
Alors le offset
pour sous sera 200: 200, mais son position
sera 0: 0.
La méthode . Offset () nous permet de récupérer la position actuelle d’un élément par rapport au document . Comparez cela avec . Position () , qui récupère la position actuelle par rapport au parent décalé . .Offset () est le plus utile pour positionner un nouvel élément par-dessus un élément existant en vue d'une manipulation globale (en particulier pour l'implémentation par glisser-déposer).
Source: http://api.jquery.com/offset/