Как реализовать переход на предыдущие страницы каталога, когда используется бесконечная прокрутка (infinity-scroll) на сайте, если пользователь скопировал ссылку с номером страницы? Возможно ли прокрутить обратно к началу при открытии страницы по прямой ссылке, например, открыв ссылку типа .../catalog/page3? Имеется хороший плагин для бесконечной прокрутки, но он не поддерживает эту функциональность.
Для реализации скроллинга вверх без остановки можно использовать JavaScript. Вот пример кода, который будет прокручивать страницу вверх без остановки: ```javascript var scrollSpeed = 2; function scrollUp() { window.scrollBy(0, -scrollSpeed); requestAnimationFrame(scrollUp); } scrollUp(); ``` Чтобы реализовать переход на предыдущие страницы каталога при использовании бесконечной прокрутки, необходимо получить номер страницы из URL и установить соответствующий скролл. Вот пример кода, который можно использовать для этой цели: ```javascript var url = window.location.href; var page = url.split('page')[1]; if (page) { var scrollTo = document.getElementById('page' + page); scrollTo.scrollIntoView(true); } ``` Этот код будет искать номер страницы в URL и прокручивать к соответствующему элементу на странице. Эти примеры можно доработать и адаптировать под ваши нужды и особенности сайта.
Недавно искал и тоже не нашел готовый плагин, пришлось писать самому. Код сейчас недоступен, алгоритм следующий:
1. Размещаем сверху списка элемент
2. Создаём IntersectionObserver с этим элементом
3. Когда срабатывает callback на появление элемента в зоне видимости запоминаем положение скролла относительно низа страницы и запускаем загрузку данных, а по окончании загрузки рендерим данные на страницу и ставим скролл на значение, которое запоминали ранее.
Ну ещё лоадер можно отрисовать, когда идёт загрузка данных и выставлять флаг, чтобы при повторном появлении не запускалась ещё одна загрузка данных и т.д. по вкусу