Постраничная навигация
Общая информация
Блок постраничной навигации состоит из панели пронумерованных страниц.
Для работы стилей постраничной навигации, контейнеру списка необходимо
задать класс .pagination
а всем его элементам, класс .pagination-page
<ul class="pagination">
<li class="pagination-page disabled"><a href="#" rel="nofollow"><i class="fa-solid fa-angles-left"></i></a></li>
<li class="pagination-page disabled"><a href="#" rel="nofollow"><i class="fa-solid fa-angle-left"></i></a></li>
<li class="pagination-page"><a href="#" rel="nofollow">1</a></li>
<li class="pagination-page"><a href="#" rel="nofollow">2</a></li>
<li class="pagination-page page-selector"><a href="#" rel="nofollow">...</a></li>
<li class="pagination-page"><a href="#" rel="nofollow">39</a></li>
<li class="pagination-page active"><a href="#" rel="nofollow">40</a></li>
<li class="pagination-page"><a href="#" rel="nofollow">41</a></li>
<li class="pagination-page page-selector"><a href="#" rel="nofollow">...</a></li>
<li class="pagination-page"><a href="#" rel="nofollow">99</a></li>
<li class="pagination-page"><a href="#" rel="nofollow">100</a></li>
<li class="pagination-page"><a href="#" rel="nofollow"><i class="fa-solid fa-angle-right"></i></a></li>
<li class="pagination-page"><a href="#" rel="nofollow"><i class="fa-solid fa-angles-right"></i></a></li>
</ul>
<br><br>
<ul class="pagination">
<li class="pagination-page"><a href="#">← Назад</a></li>
<li class="pagination-page"><a href="#">Вперед →</a></li>
</ul>
Класс .disabled
элемента списка служит для отключения переключателя.
Javascript
Блок постраничной навигации можно создать при помощи Javascript. В этом случае у вас откроется больше возможность без перезагрузки страницы.
Для этого вам необходимо создать экземпляр класса PipUI.Pagination
и передать в него необходимые параметры.
Данный класс имеет в себе два параметра
HTMLElement - элемент или строковая ссылка на элемент
Object - объект с набором опций
Пример
<div id="pagination1"></div>
<script>
let pagination1 = new PipUI.Pagination('#pagination1', {records: 100});
</script>
Опции
Второй параметр объекта PipUI.Pagination поддерживает следующие параметры
// Выводить в консоль отладку
debug: false
// Шаблон адреса URL страницы. На место {NUM} будет подставлен номер страницы
url: '/page-{NUM}'
// Что должно произойти после нажатия на селектор
// Поддерживаемые значения:
// redirect - произойдет переход на страницу, указанную в ссылке селектора
// location - URL страницы изменится, но перехода не произойдет
// none - отсутствие действия
// Во всех случаях визуальная составляющая будет обновлена
method: 'redirect'
// Тип метода генерации шаблона постраничной навигации.
// Поддерживаемые значения по умолчанию от 1 до 4
// Вы можете передать свое значение, но перед этим необходимо создать свой метод, добавив его через опцию types
type: 1
// Кол-во записей
records: 0
// Текущий номер страницы
current: 1
// Максимальное кол-во элементо вна страницу
max: 10
// Функция обратного вызова, которая будет выполнена при изменении страницы
changePageCallback: undefined
// Функция обратного вызова, которая будет выполнена при рендере
updateCallback: undefined
// Типы методов генерации шаблона постраничной навигации
types: {...}
Методы
let pagination = new PipUI.Pagination('#pagination');
pagination.getID() // Вернет уникальный идентификатор
pagination.setOptions(object) // Изменить опции. DOM не будет изменен
// до вызова метода pagination.update()
pagination.getOptions() // Получить опции
pagination.update() // Отрендерить содержимое заново
pagination.getPages() // Вернуть общее кол-во страниц
pagination.getPrev() // Вернуть номер предыдущей страницы
pagination.getNext() // Вернуть номер следующей страницы
pagination.setPage(int) // Установить новую страницы. Содержимое будет обновлено
pagination.getType() // Получить объект типа метода генерации
Новые типы генерации
Для создания или изменения текущего типа генерации, необходимо передать в опции параметр types со своими значениями.
Пример нового типа
let pagination = new PipUI.Pagination('#pagination', {
records: 100,
types: {
5: {
render: function(self){
return '<li class="pagination-page"><a data-pagination-page="1" href="#">1</a></li>';
}
}
}
});
События
change-pagination-pipui
Срабатывает при изменении страницы
.pagination
update-pagination-pipui
Срабатывает при обновлении списка
.pagination
Last updated