Бесконечный свиток с простым текстом - PullRequest
1 голос
/ 24 апреля 2019

Я хотел бы реализовать функцию бесконечной прокрутки, но есть некоторые вещи, которые делают это очень трудным:

  1. Я бы хотел более или менее фиксированную высоту окна.
  2. Так что обычно я сравнивал бы окно scrollTop с разницей между высотой документа и высотой окна, добавлял к нижней части и удалял сверху, настраивал scrollTop. Легко.
  3. НО. Я не могу добавить. В моем теге body есть либо смесь HTML и простого текста, либо просто простой текст.
  4. Итак, я решил, что буду использовать что-то вроде этого
    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
    }

Это работает, но работает очень плохо. Иногда положение прокрутки немного неправильное. Более того, в некоторых случаях я получаю прокрутку, прыгающую наверх и запускающую прокрутку снизу или наоборот.

Интересно, есть ли лучший подход или какой-нибудь существующий плагин для этой задачи? Мне действительно нужна бесконечная прокрутка, так как я выполняю языковую обработку и некоторые другие немного тяжелые вещи в тексте.

1 Ответ

0 голосов
/ 24 апреля 2019

Посмотрите, сможете ли вы добиться этого с помощью популярного плагина jQuery: https://infinite -scroll.com / .

...