@MrNerub

Как работать со scrollTop?

Пытаюсь сделать так, чтобы контент на страничке прогружался при скролле вниз. То есть первые 15 новостей, затем к ним, при скролле блока контента, добавляются следующие несколько новостей.
Но выходит так, что прогружаются новости множество раз, т.е. условие выполняется снова и снова.
if ($('#news').scrollTop() > $('.class_news').height() - 500) {
... добавляем новости
}
Как я понял, второй блок "class_news" просто не успевает поменять высоту, а потому условие выполняется множество раз.
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
profesor08
@profesor08 Куратор тега JavaScript
Тебе надо опираться на высоту документа, либо блока с новостями. Определять позицию блока, определять позицию прокрутки, если прокрутка в нужном положении, то загружать. Как только пошла загрузка ждать ее завершения и никак не реагировать на прокрутку. Как контент будет загружен, снова продолжать. Достаточно ввести флаг индикатор загрузки.
if (isLoading === false) {
  if ($('#news').scrollTop() > $('.class_news').height() - 500) {
    isLoading = true;
    load();
  }
}

function load() {
  $.ajax(..., function() {
    isLoading = false;
  })
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы