Estoy tratando de detectar la posición de la barra de desplazamiento del navegador con JavaScript para decidir en qué parte de la página se encuentra la vista actual. Supongo que tengo que detectar dónde está el pulgar en la pista, y luego la altura del pulgar como un porcentaje de la altura total de la pista. ¿Lo estoy complicando demasiado o JavaScript ofrece una solución más fácil que esa? ¿Alguna idea de código sabio?
fuente
element
ydocument.body
eran solo ejemplos). Vea howtocreate.co.uk/tutorials/javascript/browserwindow para más detalles.window.pageYOffset
, pero no puedo hacer que nada funcione en IE7. Intentadowindow.pageYOffset
,document.body.scrollTop
,document.documentElement.scrollTop
,element.scrollTop
document.body
en la mayoría de los navegadores modernos, generalmente está activadadocument.documentElement
ahora. Consulte bugs.chromium.org/p/chromium/issues/detail?id=157855 para la transición de Chrome.Lo hice por un
<div>
en Chrome.element .scrollTop : son los píxeles ocultos en la parte superior debido al desplazamiento. Sin desplazamiento, su valor es 0.
elemento .scrollHeight : son los píxeles de todo el div.
element .clientHeight : son los píxeles que ve en su navegador.
Será el puesto.
será el valor máximo para scrollTop .
será el porcentaje de desplazamiento [de 0 a 1] .
fuente
devuelve una matriz con dos enteros: [scrollLeft, scrollTop]
fuente
Es como esto :)
fuente
Respuesta para 2018 :
La mejor manera de hacer cosas así es usar la API Intersection Observer .
Vea el siguiente código de ejemplo:
La mayoría de los navegadores modernos admiten IntersectionObserver , pero debe usar el polyfill para compatibilidad con versiones anteriores.
fuente
si te importa toda la página. puedes usar esto:
fuente
Si está utilizando jQuery, existe una función perfecta para usted: .scrollTop ()
Doc aquí -> http://api.jquery.com/scrollTop/
nota: puede usar esta función para recuperar O establecer la posición.
ver también: http://api.jquery.com/?s=scroll
fuente
Aquí está la otra forma de obtener la posición de desplazamiento
fuente
Creo que la siguiente función puede ayudar a tener valores de coordenadas de desplazamiento:
Tengo esta idea de esta respuesta con un pequeño cambio.
fuente