| Kopusha |
|
|---|---|
|
подключаем js плагин jquery.infinitescroll.js
if( $('.pagination__next').length ) // Если есть следующая страница в пагинации
{
//infiniteScroll in Folio
$container = $('.container-scrl');
$container.infiniteScroll({
// options
path: '.pagination__next',
append: '.post-scrl',
history: false,//не меняем урл при подгрузке что бы не путать пользователя
prefill: true,
scrollThreshold: 800,
//history: 'push', //прописывает в историю и титл стр текущую стр
//historyTitle: true,
//button: '.view-more-button',//пока кнопку убрал
});
//дело в том что на догруженных элементах могут быть свои js которые не включаться
//включить их надо после загрузки например как ниже
//это специфика для конкретного сайта, тебе это может и не нужно, но как принцип я оставил
$container.on( 'append.infiniteScroll', function( event, response, path, items ) {//включаем нужные функции для вновьсозданных объектов
$('.files-list-grid .files-list-grid-wrapper').css("opacity", 0);
$('.stories-list-grid .stories-list-grid-wrapper').css("opacity", 0);
// set a timer to re-apply the plugin
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(collage, 200);
});
$container.on( 'append.infiniteScroll', function( event, response, path, items ) {//включаем нужные функции для вновьсозданных бъектов
jQuery("[data-toggle=popover]").popover();
jQuery("[data-toggle=tooltip]").tooltip();
});
// просмотр историй без пагинации для гугланалитики
var link = document.createElement('a');
$container.on( 'append.infiniteScroll', function( event, response, path ) {
link.href = path;
ga( 'set', 'page', link.pathname );
ga( 'send', 'pageview' );
});
}
и сама TPL
<div class="container-scrl">
<!-- one story -->
<!-- BEGIN: PRD_ROWS -->
<!-- article -->
<article class="storiesart portstories-item post-scrl" itemprop="itemListElement" itemscope itemtype="http://schema.org/WebPage">
<!-- тут собственно сама запись -->
<!-- важно обратить внимание на класс post-scrl в теге article -->
</article>
<!-- article -->
<!-- END: PRD_ROWS -->
<!-- one story -->
</div>
<!-- PAGINATION -->
<!-- IF {PAGENAV_COUNT} > 1 -->
<a class="pagination__next" style="display: none" href="{PHP.sys.canonical_url}&d=2" title="Load more stories">Load more stories</a>
<!-- ENDIF -->
<!-- PAGINATION -->
<!-- важно обратить внимание что что если есть постраничное разбитие - то есть есть более 1 страницы - сработает js infiniteScroll jquery.infinitescroll.js -->
|
| ed.moriarti |
|
|---|---|
|
А где он этот main.js я что-то не нашёл... и в какой TPL этот код прописывать нужно? В каждый list где есть пажинация? |
| Kopusha |
|
|---|---|
|
это один из вариантов оформления - вся документация есть на https://infinite-scroll.com/ 1 Надо подключить js плагин infiniteScroll 2 всюду где надо подрузку в tpl дописать class
3 надо инициализировать действие плагина кодом js if( $('.pagination__next').length ) // Если есть следующая страница в пагинации{$container = $('.container-scrl');//в который мы обрамляем то что будет подгружатьи вперед
$container.infiniteScroll({ // options path: '.pagination__next', append: '.post-scrl', history: false,//не меняем урл при подгрузке что бы не путать пользователя prefill: true, scrollThreshold: 800, //history: 'push', //прописывает в историю и титл стр текущую стр //historyTitle: true, //button: '.view-more-button',//пока кнопку убрал });читаем документацию и пробуем.И да, в каждый лист где надо убрать пагинацию, само оно только в сказке.
|
| ed.moriarti |
|
|---|---|
|
А это что значит?
|
| Kopusha |
|
|---|---|
|
Вот еще раз попробую посоветовать |