Я хотел бы реализовать функцию бесконечной прокрутки, но есть некоторые вещи, которые делают это очень трудным:
- Я бы хотел более или менее фиксированную высоту окна.
- Так что обычно я сравнивал бы окно scrollTop с разницей между высотой документа и высотой окна, добавлял к нижней части и удалял сверху, настраивал scrollTop. Легко.
- НО. Я не могу добавить. В моем теге
body
есть либо смесь HTML и простого текста, либо просто простой текст.
- Итак, я решил, что буду использовать что-то вроде этого
l=18000;
//start length
sw=3000;
//scrolling window
j=0;
const html=$("body").html();
if (scrollToBottom) {
$("body").html(html.slice(j,l+sw));
var ph=$("body").height();
var result=html.slice(j+l,sw+l);
$("body").html(result);
var ch=$("body").height();
var st=$(window).scrollTop-ph+ch;
$(window).scrollTop(st);
} else if (scrollToTop) {
//the same
}
Это работает, но работает очень плохо. Иногда положение прокрутки немного неправильное. Более того, в некоторых случаях я получаю прокрутку, прыгающую наверх и запускающую прокрутку снизу или наоборот.
Интересно, есть ли лучший подход или какой-нибудь существующий плагин для этой задачи? Мне действительно нужна бесконечная прокрутка, так как я выполняю языковую обработку и некоторые другие немного тяжелые вещи в тексте.