Existe-t-il un moyen de trouver la position absolue d'un élément, c'est-à-dire relative au début de la fenêtre, en utilisant jQuery ?
Réponses
Trop de publicités?.offset()
retournera la position décalée d'un élément sous la forme d'un objet simple, par exemple :
var position = $(element).offset(); // position = { left: 42, top: 567 }
Vous pouvez utiliser cette valeur de retour pour positionner d'autres éléments au même endroit :
$(anotherElement).css(position)
Notez que $(element).offset()
vous indique la position d'un élément par rapport au document . Cela fonctionne très bien dans la plupart des cas, mais dans le cas de position:fixed
vous pouvez obtenir des résultats inattendus.
Si votre document est plus long que la fenêtre d'affichage et que vous avez fait défiler verticalement vers le bas du document, alors votre position:fixed
de l'élément offset()
valeur sera supérieure à la valeur attendue par la quantité que vous avez fait défiler.
Si vous recherchez une valeur par rapport à la fenêtre d'affichage (fenêtre), plutôt que le document sur un élément position:fixed, vous pouvez soustraire l'élément scrollTop()
de l'élément fixe offset().y
valeur.
Si le position:fixed
est le parent décalé de l'élément document vous voulez lire parseInt($.css('top'))
à la place.