Problema que ya me he encontrado un par de veces creando aplicaciones Ajax: tener una zona de pantalla con scroll vertical en la que ir soltando texto, forzando al scroll a permanecer abajo (aunque sólo si estaba abajo previamente).
La solución la he sacado del código fuente de Firebug Lite. Consiste en lo siguiente. Cada vez que se añada contenido al area objetivo:
- Determinar si el scroll está abajo.
- Insertar el contenido deseado.
- Mover el scroll al fondo si estaba así en el primer paso.
El problema es conseguir código Javascript portable para los pasos 1 y 3. Para el primer paso, hay que hacer:
var isScrolledToBottom = target.scrollTop + target.offsetHeight >= target.scrollHeight;
Y para el segundo:
if (isScrolledToBottom) {
target.scrollTop = target.scrollHeight - target.offsetHeight;
}
Y así de fácil. Dejo un ejemplo demostrativo aquí debajo, con el código Javascript incrustado en la página, para rápida referencia:
Aquí van a empezar a salir lineas






Últimos artículos comentados