¿Cómo determino la distancia entre la parte superior de un div y la parte superior de la pantalla actual? Solo quiero la distancia de píxeles a la parte superior de la pantalla actual, no a la parte superior del documento. He intentado algunas cosas como .offset()
y .offsetHeight
, pero no puedo entenderlo. ¡Gracias!
javascript
jquery
Joel Eckroth
fuente
fuente
el.getBoundingClientRect().top+window.scrollY
el.getBoundingClientRect().top
. Agregar la posición de desplazamiento se suma a la distancia hasta la parte superior del documento. developer.mozilla.org/de/docs/Web/API/Element/…Respuestas:
Puede usar
.offset()
para obtener el desplazamiento en comparación con eldocument
elemento y luego usar lascrollTop
propiedad delwindow
elemento para encontrar qué tan abajo de la página se ha desplazado el usuario:La
distance
variable ahora mantiene la distancia desde la parte superior del#my-element
elemento y el pliegue superior.Aquí hay una demostración: http://jsfiddle.net/Rxs2m/
Tenga en cuenta que los valores negativos significan que el elemento está por encima del pliegue superior.
fuente
distance
variable para ver si su valor es,120
pero recomendaría verificar un rango en lugar de un número exacto. Si, por ejemplo, te desplazas con la rueda del mouse, es muy posible que saltes más de 120. Entonces, si estás tratando de aplicar algo de CSS o algo cuando el elemento está dentro de los 120 px del pliegue superior, entonces quizás lo usesif (distance < 120) { /* do something */}
. Aquí hay una demostración actualizada: jsfiddle.net/na5qL91oVainilla:
Abra la consola de su navegador y desplace su página para ver la distancia.
fuente
distanceToTop
devolución es relativa (incluso puede ser negativa si el usuario se ha desplazado más allá). Para tener esto en cuenta, usewindow.pageYOffset + someDiv.getBoundingClientRect().top
Esto se puede lograr únicamente con JavaScript .
Veo que la respuesta que quería escribir fue respondida por Lynx en los comentarios a la pregunta.
Pero voy a escribir la respuesta de todos modos porque, al igual que yo, la gente a veces se olvida de leer los comentarios.
Entonces, si solo desea obtener la distancia de un elemento (en píxeles) desde la parte superior de la ventana de la pantalla, esto es lo que debe hacer:
use getBoundingClientRect ()
¡Eso es!
Espero que esto ayude a alguien :)
fuente
Usé esto:
código:
fuente
Usé esta función para detectar si el elemento es visible en el puerto de vista
Código:
fuente