posicion mostrar hacer elementos ejemplo div detectar con bajar aparecer javascript scroll scrollbar

javascript - mostrar - ¿Cómo puedo determinar si un div se desplaza hacia abajo?



mostrar div con scroll (4)

¿Cómo puedo determinar, sin usar jQuery o cualquier otra biblioteca de JavaScript, si un div con una barra de desplazamiento vertical se desplaza hacia abajo?

Mi pregunta no es cómo desplazarse hacia abajo. Yo se como hacer eso. Quiero determinar si el div ya se desplazó hacia abajo.

Esto no funciona:

if (objDiv.scrollTop == objDiv.scrollHeight)


Devuelve verdadero si un elemento está al final de su desplazamiento, falso si no es así.

element.scrollHeight - element.scrollTop === element.clientHeight

Red de desarrolladores Mozilla


Estás muy cerca usando scrollTop == scrollHeight .

scrollTop refiere a la parte superior de la posición de desplazamiento, que será scrollHeight - offsetHeight

Tu declaración if debería verse así (no olvides usar triple equal):

if( obj.scrollTop === (obj.scrollHeight - obj.offsetHeight)) { }

Editar: corrigió mi respuesta, estaba completamente equivocado


Para obtener los resultados correctos al tener en cuenta factores tales como la posibilidad de un borde, barra de desplazamiento horizontal y / o conteo de píxeles flotantes, debe usar ...

el.scrollHeight - el.scrollTop - el.clientHeight < 1

NOTA: DEBE usar customerHeight en lugar de offsetHeight si desea obtener los resultados correctos. offsetHeight le dará los resultados correctos solo cuando el no tenga un borde o una barra de desplazamiento horizontal


Poco tarde para esta fiesta, pero ninguna de las respuestas anteriores parece funcionar particularmente bien cuando ...

  • La escala de visualización se aplica al sistema operativo para pantallas UHD
  • La escala / zoom se aplica al navegador

Para adaptarse a todas las eventualidades, deberá redondear la posición de desplazamiento calculada:

Math.ceil(element.scrollHeight - element.scrollTop) === element.clientHeight