pagination-class v1.0.4
Pagination class
An ES6 class for pagination functionality and rendering.
Example
This example shows how to create a pagination instance. To integrate pagination with application logic, simply bind functionality to instance events.
JavaScript
import Pagination from 'pagination-class'
let pagination = new Pagination('#pagination-container', 50, 1)
pagination.on('goto:post', () => {
// Application logic for navigation
})
HTML
<html>
<head>
<title>Pagination class example</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Pagination class example</h1>
<div id="pagination-container"></div>
</body>
</html>
Parameters
container
Container to insert pagination elements into - can provide either an HTML node or a string to be used in document.querySelector()
.
pages
Total number of pages to render.
current
Current page.
options
Pagination instance options.
listClass
: Class added to<ul>
elementsummaryClass
: Class added to pagination summary container elementsummaryCurrentClass
: Class added to the<span>
element containing the current pagesummaryOfClass
: Class added to the<span>
element containing the 'of' text, defined in thesummaryOfText
optionsummaryTotalClass
: Class added to the<span>
element containing the total number of pagesitemClass
: Class added to page number elementsseparatorClass
: Class added to separator elements, between truncated points in the listprevClass
: Class added to previous elementnextClass
: Class added to next elementactiveClass
: Class added to active page elementdisabledClass
: Class added to disabled elementsshowSummary
: Enable summary displayshowPages
: Enable pages displayshowPrevNext
: Enable previous and next displaytruncateList
: Enable truncated page list - iffalse
, list will contain every pageadjacentNumbers
: Number of pages to appear on either side of the current pageouterNumbers
: Number of pages to appear on the outside of the truncated list - lists the first x pages and last x pages, depending where truncatedsummaryOfText
: Text to display in the summary, between the current page and total pagesprevText
: Text to display in the previous elementnextText
: Text to display in the next elementseparatorText
: Text to display in the page separator element
Defaults
{
listClass: 'pagination-list',
summaryClass: 'pagination-summary',
summaryCurrentClass: 'pagination-summary-current',
summaryOfClass: 'pagination-summary-text',
summaryTotalClass: 'pagination-summary-total',
itemClass: 'pagination-item',
separatorClass: 'pagination-separator',
prevClass: 'pagination-prev',
nextClass: 'pagination-next',
activeClass: 'active',
disabledClass: 'disabled',
showSummary: true,
showPages: true,
showPrevNext: true,
truncateList: true,
adjacentNumbers: 6,
outerNumbers: 2,
summaryOfText: 'of',
prevText: 'Previous',
nextText: 'Next',
separatorText: '…'
}
Controls
Public control methods to be accessed on an instance are as follows:
goTo
Go to page specified by page
parameter.
Optionally, you can pass a direction
parameter to determine if it is moving forwards or backwards - useful for integration with sliding animations.
prev
Go to previous page - calls goTo
.
next
Go to next page - calls goTo
.
Events
The class triggers the following events:
pageclick:pre
Triggered before a page element is clicked.
Receives
{
page: page // New page to set
}
pageclick:post
Triggered after a page element is clicked.
Receives
{
page: page // New page set
}
prevclick:pre
Triggered before previous element is clicked.
Receives
{
page: page // Current page before being set
}
prevclick:post
Triggered after previous element is clicked.
Receives
{
page: page // Current page after being set
}
nextclick:pre
Triggered before next element is clicked.
Receives
{
page: page // Current page before being set
}
nextclick:post
Triggered after next element is clicked.
Receives
{
page: page // Current page after being set
}
goto:pre
Triggered before new page is set.
Receives
{
newPage: newPage, // New page to set
direction: direction // Navigation direction
}
goto:post
Triggered after new page is set.
Receives
{
newPage: newPage, // New page just set
previousPage: previousPage, // Previous page before being set
direction: direction // Navigation direction
}
prev:pre
Triggered before navigating to previous page.
prev:post
Triggered after navigating to previous page.
next:pre
Triggered before navigating to next page.
next:post
Triggered after navigating to next page.
8 years ago