Javascript-Mechanismus zum automatischen Scrollen zum Ende einer wachsenden Seite?

Hoffentlich ist dies eine einfache Antwort für jemanden mit Javascript-Zeit im Hintergrund ...

Ich habe eine Protokolldatei, die von einem Skript überwacht wird, das neue Zeilen in der Abmeldung an alle verbundenen Browser weiterleitet. Ein paar Leute haben kommentiert, dass das, was sie sehen wollen, eher ein 'Schwanz-f'-Verhalten ist - die neuesten Zeilen werden immer am unteren Rand der Browserseite angezeigt, bis der Betrachter einen Bildlauf nach oben durchführt, um etwas zu sehen. Wenn Sie nach unten scrollen, sollten Sie zum automatischen Scrollen zurückkehren.

ei meinem Google-Streik in diesem Fall geht es - hoffentlich - nur darum, überhaupt nichts über Javascript zu wissen und daher nicht zu wissen, nach welchen Keywords gesucht werden soll. Ich brauche keine vollständige Lösung - nur ein "nahes Stück", mit dem ich hineinspringen und mir die Hände schmutzig machen kann.

BEARBEITEN

Ich habe versucht, die Idee scrollTop / scrollHeight zu verwenden, aber es fehlt eindeutig etwas. Ich habe so gut wie nichts mit Javascript gemacht, also stelle ich wahrscheinlich wieder sehr einfache Fragen:

<html><body>
<script type="text/javascript">
for (i=0; i<100; i++)
{
    document.write("" + i + "<br />");
    document.scrollTop = document.scrollHeight;
}
</script>
</body></html>

Dies war eine von vielen Permutationen. Natürlich kann ich das Protokoll nicht Zeile für Zeile in Javascript ausgeben, aber ich versuche nur, das richtige Verhalten zu erkennen. Was ist das fehlende Glied, das ich hier brauche?

EDIT AGAIN: Dies hat sich zu einem weitaus interessanteren Problem entwickelt, das ich zuerst erwartet hatte. Der Codevorschlag mit window.scroll erledigt den Trick. Ich habe damit begonnen, das Scrollen so einzuschränken, dass es nur stattfindet, wenn sich der Browser am unteren Rand des Dokumentkörpers befindet. Theoretisch ist dies recht einfach, aber in der Praxis stößt es auf einen Haken:

Jedes Mal, wenn Sie neuen Text vom Server erhalten, vergrößert sich der Textkörper und Ihre aktuelle Bildlaufposition befindet sich nicht mehr am unteren Rand des Dokuments. Sie können nicht mehr unterscheiden (mithilfe von scrollHeight, clientHeight und scrollTop), ob der Benutzer einen Bildlauf nach oben ausgeführt hat oder ob der Text gerade über seine Ansicht hinausgeschossen ist.

Ich denke, wenn dies funktionieren soll, muss ich mich dazu verpflichten, ein JS-Ereignis auszulösen, das ausgelöst wird, wenn der Benutzer einen Bildlauf durchführt, und das Scrollen deaktiviert, wenn er sich über dem unteren Rand des Fensters befindet, es jedoch wieder aktiviert Wenn sie bis zu dem Punkt gescrollt haben, an dem sie sich im unteren Bereich der Ansicht befinden. Ich schaue auf das onScroll-Ereignis und da die Mathematik zu den Variablen, die ich erwähnt habe, ziemlich gut funktioniert, denke ich, dass ich hier auf dem richtigen Weg bin. Vielen Dank für Ihre Eingabe, alle!

Antworten auf die Frage(12)

Ihre Antwort auf die Frage