Comment déterminer la distance entre le haut d'un div et le haut de l'écran actuel? Je veux juste la distance en pixels du haut de l'écran actuel, pas du haut du document. J'ai essayé quelques trucs comme .offset()
et .offsetHeight
, mais je ne peux tout simplement pas m'envelopper dans mon cerveau. Merci!
javascript
jquery
Joël Eckroth
la source
la source
el.getBoundingClientRect().top+window.scrollY
el.getBoundingClientRect().top
. L'ajout de la position de défilement s'ajoute à la distance par rapport au haut du document. developer.mozilla.org/de/docs/Web/API/Element/…Réponses:
Vous pouvez utiliser
.offset()
pour obtenir le décalage par rapport à l'document
élément, puis utiliser lascrollTop
propriété de l'window
élément pour trouver à quelle distance de la page l'utilisateur a fait défiler:La
distance
variable contient maintenant la distance entre le haut de l'#my-element
élément et le pli supérieur.Voici une démo: http://jsfiddle.net/Rxs2m/
Notez que les valeurs négatives signifient que l'élément est au-dessus du pli supérieur.
la source
distance
variable pour voir si sa valeur est120
mais je recommanderais de vérifier une plage au lieu d'un nombre exact. Si, par exemple, vous faites défiler avec une molette de souris, vous pourriez très bien sauter plus de 120. Donc, si vous essayez d'appliquer du CSS ou quelque chose lorsque l'élément est à moins de 120 pixels du pli supérieur, alors peut-être utiliserif (distance < 120) { /* do something */}
. Voici une démo mise à jour: jsfiddle.net/na5qL91oVanille:
Ouvrez la console de votre navigateur et faites défiler votre page pour voir la distance.
la source
distanceToTop
retour est relatif (peut même être négatif si l'utilisateur a défilé). Pour en tenir compte, utilisezwindow.pageYOffset + someDiv.getBoundingClientRect().top
Cela peut être réalisé uniquement avec JavaScript .
Je vois que la réponse que je voulais écrire a été répondu par lynx dans les commentaires à la question.
Mais je vais quand même écrire une réponse car tout comme moi, les gens oublient parfois de lire les commentaires.
Donc, si vous voulez juste obtenir la distance d'un élément (en pixels) du haut de votre fenêtre d'écran, voici ce que vous devez faire:
utilisez getBoundingClientRect ()
C'est tout!
J'espère que cela aide quelqu'un :)
la source
J'ai utilisé ceci:
code:
la source
J'ai utilisé cette fonction pour détecter si l'élément est visible dans le port de vue
Code:
la source