2010-02-18 14 views
7

Necesito detectar cuando un usuario llega al final de readonly textarea en una página html.Detectar cuando un usuario llega al final de un área de texto de solo lectura en una página html

El área de texto mostrará un registro muy largo para una aplicación. Los archivos de registro son tan grandes que es imposible cargar todo el texto de una vez (algunos archivos de registro son casi 200 MB). Así que voy a cargar la primera, digamos, 1000 líneas, y luego necesito detectar cuando el usuario está cerca de la última línea del texto cargado para darle las siguientes n líneas a través de una llamada ajax.

¿Cuál es la mejor forma de detectar este evento?

+0

el evento onscroll (IE específico) vale la pena investigar en: http://msdn.microsoft.com/en-us/library/ms536966%28VS.85%29.aspx –

Respuesta

2

Debe comparar el textarea.scrollHeight con el textarea.scrollTop - cuanto más cerca estén, más cerca estará del final de su área de texto.

+0

Hice algunas pruebas con scrollHeight. En un área de texto con una altura fija de 850px obtengo estos valores cuando llego al final: scrollTop: 510 scrollHeight: 1360 Por lo tanto, no parece cierto que "cuanto más cerca estén, más cerca están del final de su área de texto ". De todos modos, este es un buen punto de partida para encontrar una solución. – alexmeia

+0

@alexmeia mirando sus números parece que podría hacer esto: if ((altura del elemento + scrollTop) == scrollHeight) { // parte inferior } – lincolnk

+0

Bueno, creo que todo es relativo @alexmeia - ¿Qué comienzan? ¿como? Es probable que necesites restar algunas compensaciones que obviamente no conozco. –

1

Puedes trabajar con caret position (verificando dónde está y comparándolo con tu longitud).

O bien, podría trabajar con el scrollbar position. (o una combinación de ambos)

Cuestiones relacionadas