Как «заморозить» скролл?

Есть чат. В начале загружаются 20 сообщений. Потом если скролить вверх, то подгружаются предыдущий 20 сообщений (как вконтакте). Проблема в том, что когда скролл доходит до верха и подгружаются сообщения методом .prepend(), то скролл так и остается наверху, а не перескакивает ниже (т.к. окно с чатом увеличилось после загрузки сообщений). Как можно "заморозить" скролл на месте? Т.е. старые сообщения подгружаются и их сразу видно, а должно быть как вконтакте, чтобы увидеть старые сообщения нужно снова скролить вверх.
Есть мысль перед каждой "пачкой" сообщений вешать якорь и после подгрузки новых сообщений перематывать окно к этому якорю. Но что-то мне кажется это не лучшее решение...
  • Вопрос задан
  • 917 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Вам нужно не "морозить" скролл, а сдвигать его вниз на высоту вставленного блока. Сделать это довольно легко c помощью api.jquery.com/scrolltop.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Вообще prepend не должен скролить страницу вверх. Он просто вставляет текст в верху селектора.
Я думаю, Вам надо искать в скрипте то, что скролит вверх и переписать эту функцию или не вызывать ее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы