Заблокируйте полосу прокрутки внизу страницы, используя jQuery? - PullRequest
2 голосов
/ 18 марта 2011

Я пишу приложение "tail -f" в журнале, используя jQuery на стороне клиента.В настоящее время приложение работает, отправляя запросы AJAX на сервер каждые 2 секунды и добавляя новое содержимое журнала в существующий тег <PRE> на странице (, вдохновленный этим сообщением ).Все это прекрасно работает.

Моя проблема в том, что новый контент добавляется на страницу, но не отображается сразу.То есть все новые сообщения журнала просто нажимают полосу прокрутки выше.

Я бы хотел, чтобы полоса прокрутки была «заблокирована» в нижней части страницы, чтобы вы могли наблюдать, как весь контент отображается в режиме реального времени.Первоначально я рассматривал возможность использования jScrollPane для «блокировки» полосы прокрутки внизу, но теперь я думаю, что, возможно, есть более простой способ удержать фокус в нижней части страницы ...

Ответы [ 3 ]

6 голосов
/ 18 марта 2011

Вам нужно сделать scrollTop = scrollTHeight

var divx = document.getElementById("whatever");
divx.scrollTop = divx.scrollHeight;

Проверить рабочий пример на http://jsfiddle.net/sJshE/3/

0 голосов
/ 18 марта 2011

Можно попробовать следующее: Stackoverflow: прокрутка до низа div . Я не проверял это, но похоже, что он должен делать то, что вы хотите, если вы прикрепите это к своему запросу Ajax, когда он завершится.

0 голосов
/ 18 марта 2011

Вы можете использовать плагин scrollTo .

Как только контент возвращается из вашего вызова ajax, вы можете позвонить $.scrollTo('max'), чтобы прокрутить до конца.Или, если ваш прокручиваемый элемент не является окном, используйте селектор.

...