Механизм Javascript для автоматической прокрутки до нижней части растущей страницы?
Надеюсь, это будет простой ответ для тех, у кого за плечами Javascript ...
У меня есть файл журнала, который отслеживается скриптом, который передает новые строки в журнале для любых подключенных браузеров. Несколько человек отметили, что то, что они хотят видеть, это скорее поведение «tail -f» - последние строки всегда будут внизу страницы браузера, пока зритель не прокрутится назад, чтобы что-то увидеть. Прокрутка назад до конца должна вернуть вас к режиму автопрокрутки.
Надеюсь, что в этом я зачеркну Google, просто не зная ничего о javascript и, следовательно, не зная, какие ключевые слова нужно искать. Мне не нужно полное решение - просто «достаточно близко», которое позволяет мне прыгать и пачкать руки.
РЕДАКТИРОВАТЬ:
Я пытался использовать идею scrollTop / scrollHeight, но явно что-то упустил. Я почти ничего не сделал с Javascript, поэтому, опять же, я, вероятно, задаю вопросы очень низкого уровня:
<html><body>
<script type="text/javascript">
for (i=0; i<100; i++)
{
document.write("" + i + "<br />");
document.scrollTop = document.scrollHeight;
}
</script>
</body></html>
Это была одна из многих перестановок. Очевидно, я не могу выводить журнал построчно в javascript, но я просто пытаюсь увидеть правильное поведение. Что за недостающее звено мне нужно здесь?
ИЗМЕНИТЬ СНОВА: Это превратилось в гораздо более интересную проблему, которую я впервые ожидал. Предложение кода с использованием window.scroll делает свое дело. Я начал играть с ограничением прокрутки, чтобы иметь место только тогда, когда браузер был в нижней части тела документа. Это достаточно легко сделать в теории, но на практике это наталкивает на трудности:
Каждый раз, когда вы получаете новый текст с сервера, размер тела увеличивается, и ваша текущая позиция прокрутки больше не находится внизу документа. Вы больше не можете определить разницу (используя scrollHeight, clientHeight и scrollTop), прокручивал ли пользователь вверх или только что текст вырвался за пределы его обзора.
Я думаю, что если это сработает, мне придется взять на себя обязательство иметь событие JS, которое срабатывает, когда пользователь прокручивает и отключает прокрутку, если они находятся над нижней частью окна, но включает его, если они прокрутились вниз до точки, где они фактически находятся внизу обзора. Я смотрю на событие onScroll и, учитывая, что математика по переменным, о которых я говорил, работает очень хорошо, я думаю, что я на правильном пути. Спасибо за ваш вклад, всем!