Почему рекурсивная функция не останавливается?
На сайте юзаю скрипт:
if (document.body.scrollTop < document.body.scrollHeight){
document.body.scrollTop += 50;
setTimeout(scroll, 100);
} else if (document.body.scrollTop >= document.body.scrollHeight) {
return false;
}
};
setTimeout(scroll, 100);
Скроллит страницу до конца и даже когда значения текущей позиции скролла и максимального значения сравнялись все равно не возвращает return. Интересует именно нативный JS без фреймворков.
Ответы (1 шт):
Автор решения: DiD
→ Ссылка
.scrollTop не может быть больше .scrollHeight так как
scrollHeight = scrollTopMax + clientHeight
Правильно
if (document.body.scrollTop == document.body.scrollHeight -
document.body.clientHeight)
Вы можете сколько угодно прибавлять 50 пикселей к scrollTop, но по достижению нижней границы страницы его значение не будет меняться, если устанавливать значение больше чем scrollHeight - clientHeight.