Existe-t-il un moyen de trouver la position absolue d'un élément, c'est-à-dire par rapport au début de la fenêtre, à l'aide de jQuery?
javascript
jquery
akshat
la source
la source
offset()
ne renvoie pas la bonne coordonnée supérieure. Il renvoie à la place environ 300 pixels de plus que la coordonnée supérieure de l'élément dans le document. Pourquoi??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 circonstances, mais dans le cas deposition:fixed
vous, vous pouvez obtenir des résultats inattendus.Si votre document est plus long que la fenêtre et que vous avez fait défiler verticalement vers le bas du document,
position:fixed
laoffset()
valeur de votre élément sera supérieure à la valeur attendue du montant que vous avez fait défiler.Si vous recherchez une valeur relative à la fenêtre (fenêtre), plutôt que le document sur un élément position: fixed, vous pouvez soustraire la
scrollTop()
valeur du document de la valeur de l'élément fixeoffset().top
. Exemple:$("#el").offset().top - $(document).scrollTop()
Si le
position:fixed
parent décalé de l' élément est le document , vous souhaitez lire à laparseInt($.css('top'))
place.la source
$(document).scrollTop()