Tengo una página que muestra mensajes y quiero que funcione como Facebook, pero sin el cargador lento. Los mensajes se muestran en orden cronológico, el último más reciente.jquery: ¿evitar que la ventana cambie la posición de desplazamiento mientras antepone elementos a una lista?
Mi lista de mensajes está poblada inicialmente un número x de la mayoría de los mensajes recientes, y la ventana se desplaza a la parte inferior. Cuando el usuario comienza a leer el hilo, lo leen de abajo hacia arriba. Si llegan a la cima, pueden cargar más mensajes ... Les hago clic en un botón ... Facebook tiene un cargador lento. Los mensajes nuevos se anteponen a la lista.
Problema: A medida que se anteponen los nuevos mensajes, los mensajes existentes son empujados hacia abajo, haciendo que el usuario pierda su "visión" lugar. ¿Cómo puedo mantener la posición de vista actual del usuario mientras agrego los mensajes nuevos? Por ejemplo, abra una cadena larga de mensajes en Facebook, desplácese hasta la parte superior y haga que se agreguen nuevos mensajes ... la ubicación de su vista no cambia aunque la posición de desplazamiento sí lo haga.
La segunda solución es IMPRESIONANTE - muchas gracias, esto fue muy útil para implementar un "desplazamiento infinito inverso" al estilo de los mensajes de Facebook. –
Si está usando ajax, agregue '$ (selector) .scrollTop (firstMsg.offset(). Top-curOffset);' en el atributo ajax 'success' para que el desplazamiento funcione correctamente – user3284463
¡Impresionante! ¡Gracias, Jeff! – Can