Надеюсь, это будет простой ответ для тех, у кого позади Javascript ...
У меня есть файл журнала, который отслеживается скриптом, который передает новые строки в журнале любым подключенным браузерам. Несколько человек отметили, что то, что они хотят видеть, это скорее поведение «tail -f» - последние строки всегда будут внизу страницы браузера, пока зритель не прокрутится назад, чтобы что-то увидеть. Прокрутка вниз до конца вернет вас к режиму автопрокрутки.
Мой вывод из Google по этому вопросу - надеюсь - просто вопрос о том, что я ничего не знаю о javascript и, следовательно, не знаю, какие ключевые слова искать. Мне не нужно полное решение - просто «достаточно близко», которое позволяет мне прыгать и пачкать руки.
EDIT:
Я пытался использовать идею 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 и, учитывая, что математика по переменным, о которых я говорил, работает очень хорошо, я думаю, что я на правильном пути. Всем спасибо за ваш вклад!