На странице с постраничной навигацией, шаблон компонента постраничной навигации должен быть указан - bxmaker_ajaxpagenav_default
В таком случае будет подгружен соответствующий javascript для работы с модулем, методы которого позволяют отслеживать моменты подгрузки контента, а также подгружать контент по нужному для вас алгоритму. Например может понадобиться сделать автоматическую подгрузку контента при скроле страницы и приблежении к кнопке показать еще.
На странице после загрузки существует объект window.BXmakerAjaxpagenav
, методы которого вы можете использовать для своих задач. Если чего то не хватает - напишите на почту указанную внизу страницы.
Метод showMore()
- начинает подгрузку следующей страницы, тоже самое вызывает клик по кнопке показать еще. Первым параметром надо указать название группы(контекста). Удобно использовать в случае, когда вам нужно сделать подгрузку контента по мере прокрутки страницы пользователем.
Для этого можно добавить обработчик события прокрутки страницы, в котором проверять близко или нет кнопка показать еще, и если близко - то вызываем метод и он начинает подгружать следующую страницу.
window.BXmakerAjaxpagenav.showMore('catalog_section');
//пример подойдет в принципе на любой сайт
$(window).on("scroll", function() {
var navBottom = $('.bxmaker__ajaxpagenav__block--navbottom');
var hiddenAreaHeight = 500; // минимальная растояние до постраничной навигации, при достижении которой начнется подгрузка
var w = $(this);
if(navBottom.length)
{
var navBottomTop = navBottom.offset().top;
//если растояние до области постраничной навигации нижней менее hiddenAreaHeight пикселей, то подгружаем еще контент
if((w.scrollTop() + w.height()) >= (navBottomTop - hiddenAreaHeight)) {
window.BXmakerAjaxpagenav.showMore(navBottom.attr('data-key'));
}
}
});
Аналогично работают методы prevPage()
и nextPage()
, первым параметром также передается название группы (контекста). При вызове этого события, если страница уже загружалась и есть в памяти, то контент отобразится сразу, если нет, то произойдет подгрузка.
После этого страница автоматически будет прокручена к верхнему блоку постраничной навигации чтобы человек не прокручивал страницу вниз и сразу смог увидеть результат.
window.BXmakerAjaxpagenav.nextPage('catalog_section');
Также классом генерируются события, которые можно отслеживать и стилизовать элементы допустим, выравнивать по высоте, проставлять флаги, менять названия кнопок с дефолтных на актуальный и так далее.
Событие успешной загрузки контента - bxmaker.ajaxpagenav.successResponse
$(document).on('bxmaker.ajaxpagenav.successResponse', function(e, data){
// data.href - запрошенный адрес
// data.key - название группы(контекста)
// data.showmore - true/false - true если была нажата кнопка показать еще
// data.result - ответ сервера на ajax запрос в json формате
});
Событие при наличии ошибок в ответе - bxmaker.ajaxpagenav.errorResponse
- параметры такие же как у предыдущего
Событие ошибки при попытке сделать запрос и обработать ответ - bxmaker.ajaxpagenav.errorRequest
- параметры такие же
Если у вас на странице уже есть блок с постраничной навигацией и вам нужно его изменить, загрузив по ajax, например изменилась сортировка и перезагружается весь блок контента включая и навигацию, то после размещения нового контенту, нужно заново проинициализировать методы для работы постарницчной навигации, для этого есть соответствующий метод
window.BXmakerAjaxpagenav.init();
Важно учитывать что на странице уже должны быть подключены скрипты из шаблона, по умолчанию они автоматически подключаются при вызове компонента постраничной навигации при обычной загрузке страницы, когда в хедере подключаются все скрипты.