Универсальная бесконечная прокрутка
infinity.js - это универсальный скрипт бесконечной прокрутки, который не считает пиксели без нужды при каждой минимальной прокрутке страницы и умеет останавливаться после нескольких страниц. Если вы когда-либо хотели прикрутить бесконечную прокрутку к какому-нибудь старому сайту, то время пришло.
Для работы этого скрипта у вас на странице должны быть раздел с контентом, и раздел со списком страниц и ссылкой на следующую страницу.
Контент
В конец к разделу с контентом будет дописываться содержимое следующих страниц.
<div class="messages">
<p>Содержимое первой страницы</p>
</div>
Список страниц
Cодержимое раздела со списком страниц будет заменяться при открытии следующих страниц. В списке страниц должна быть отмечена ссылка на следующую страницу.
<div class="pager">
<a href="index.html">Страница 1</a>
<a href="2.html" class="nextpage">Страница 2</a>
<a href="3.html">Страница 3</a>
<a href="4.html">Страница 4</a>
<a href="5.html">Страница 5</a>
<a href="6.html">Страница 6</a>
<a href="7.html">Страница 7</a>
</div>
В самом минимальном варианте в нём может быть лишь ссылка на следующую страницу.
<div class="pager">
<a href="2.html" class="nextpage">Следующая страница</a>
</div>
Селекторы для поиска разделов задаются в удобном и подходящем виде прямо в скрипте в переменных elementContainerSelector
, pagerSelector
и nextPageSelector
.
Весь скрипт подробно откомментирован, потому читайте его без опаски.
Демо
Склонируйте код с примерами:
git clone https://github.com/sanmai/infinity.js.git
cd infinity.js/
Затем запустите что вам по душе:
python -m SimpleHTTPServer
Или:
php -S localhost:8000
И проследуйте по ссылке чтобы своими глазами увидеть как загружаются новые страницы при прокрутке.
В консоли можно будет наблюдать открытие следующих страниц при прокрутке.
Serving HTTP on 0.0.0.0 port 8000 ...
127.0.0.1 - - [00:00:35] "GET /example/ HTTP/1.1" 200 -
127.0.0.1 - - [00:00:35] "GET /infinity.js HTTP/1.1" 200 -
127.0.0.1 - - [00:00:37] "GET /example/2.html HTTP/1.1" 200 -
127.0.0.1 - - [00:00:37] "GET /example/3.html HTTP/1.1" 200 -
По умолчанию для просмотра четвертой страницы требуется явное действие пользователя. Количество страниц, после которых происходит остановка, настраивается в переменной maxPages
в самом скрипте.