2010-02-18 4 views
7

Devo rilevare quando un utente arriva alla fine di una area di testo in sola lettura in una pagina html.Rileva quando un utente arriva alla fine di un'area di testo di sola lettura in una pagina HTML

L'area di testo visualizza un registro molto lungo per un'applicazione. I file di registro sono così grandi che è impossibile caricare tutto il testo in una volta (alcuni file di registro sono quasi 200 MB). Quindi caricherò il primo, per esempio, 1000 righe, e quindi ho bisogno di rilevare quando l'utente è vicino all'ultima riga del testo caricato per dargli le prossime n righe tramite una chiamata Ajax.

Qual è il modo migliore per rilevare questo evento?

+0

l'evento onscroll (IE specifico) vale la pena esaminare: http://msdn.microsoft.com/en-us/library/ms536966%28VS.85%29.aspx –

risposta

2

È necessario confrontare lo textarea.scrollHeight con lo textarea.scrollTop - più vicino si è, più vicino si è alla fine dell'area di testo.

+0

Ho effettuato alcuni test con scrollHeight. In una textarea con un'altezza fissa di 850 px ricevo questi valori quando arrivo alla fine: scrollTop: 510 scrollAltezza: 1360 Quindi non sembra vero che "più sono vicini, più sei vicino alla fine del tuo area di testo. " Comunque questo è un buon punto di partenza per trovare una soluzione. – alexmeia

+0

@alexmeia guardando i numeri sembra come si potrebbe fare questo: if ((altezza elemento + scrollTop) == scrollHeight) {// fondo } – lincolnk

+0

Beh, credo che sia tutto relativo @alexmeia - Cosa Iniziano come? È probabile che sia necessario sottrarre alcune compensazioni di cui ovviamente non sono a conoscenza. –

1

Si potrebbe lavorare con caret position (controllando dove si trova e confrontandolo con la lunghezza).

Oppure, è possibile lavorare con scrollbar position. (o una combinazione di entrambi)

Problemi correlati