1.0.3 • Published 8 years ago

easy-page-navigation v1.0.3

Weekly downloads
3
License
GPL-2.0
Repository
github
Last release
8 years ago

Easy Page Navigation

Build Status

Description

This module can help you generate a page navigation in one minutes, output can be JSON or HTML.

Usage:

const EasyPageNav = require('easy-page-navigation');
    
let MyNav = new EasyPageNav(128, 10, 5);
console.log( MyNav.getNavInfo(6) );

This will print:

{
	pages:[
	    { page: 4, isCurrent: false },
	    { page: 5, isCurrent: false },
	    { page: 6, isCurrent: true },
	    { page: 7, isCurrent: false },
	    { page: 8, isCurrent: false }
	],
	havePrevious: true,
	previous: 5,
	haveNext: true,
	next: 7
}

also, you can use getNavHTML(currentPage) to generate it in HTML

<ul>
    <li><a href="/page/1" class="current">1</a></li>
    <li><a href="/page/2">2</a></li>
    <li><a href="/page/3">3</a></li>
    <li><a href="/page/4">4</a></li>
    <li><a href="/page/5">5</a></li>
    <li><a href="/page/2" class="next">2</a></li>
</ul>

Did you see? There is no previous buttion, because current page is first page.

Parameters

Constructor

ParameterDescription
dataNumberTotal data number, like posts, goods, etc.
dataPerPageHow many data will display in per page
linkPerPageHow many links in navigation, if you want get 1, 2, 3, set it as 3

linkPerPage must be an even number, because 1, 2, 3 , 4, 5

getNavInfo

ParameterDescription
currentPageYou should know this

Return:

{
	pages:[
	    { page: 4, isCurrent: false },
	    { page: 5, isCurrent: false },
	    { page: 6, isCurrent: true },
	    { page: 7, isCurrent: false },
	    { page: 8, isCurrent: false }
	],
	havePrevious: true,
	previous: 5,
	haveNext: true,
	next: 7
}

getNavHTML

ParameterDescription
currentPageYou should know this
optionsSee next section

Available Options for getNavHTML

const options = {
    outerElement: 'ul',
    outerElementClass: '',
    outerElementId: '',

    innerElement: 'li',
    innerElementClass: '',

    linkElement: 'a',
    linkElementClass: '',
    linkTemplate: '/page/{pageNum}',
    linkReplacePattern: /{pageNum}/,

    currentPageClass: 'current',

    nextElement: 'a',
    nextElementClass: 'next',
    nextElementId: '',
    previousElement: 'a',
    previousElementClass: 'previous',
    previousElementId: ''
};

You can set outerElement to a empty string or null to disable outer element,same for innerElement

But you can't do this for linkElement, if linkElement is a invalid value, it will be ignore.

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago