2.0.1 • Published 2 years ago

react-js-pager v2.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

react-js-pager

npm npm bundle size NPM

  • React library to alows users to navigate through pages of data.
  • Best for creating tabs, image slider, fullPage scrolling and more.

npm.io npm.io

npm.io

npm.io

Installation

npm install react-js-pager

Usage

  • Note: If you have pages with different heights, give them a style with height: 100% and overflow: auto to make sure that the scrollbar will show on the pages not on the pager wrapper element.
//...
import Pager from 'react-js-pager';

export default function App() {
  let pagerMethods = null;

  const next_page_handle = () => {
    if (pagerMethods !== null) pagerMethods.next();
  };

  const previous_page_handle = () => {
    if (pagerMethods !== null) pagerMethods.previous();
  };

  const set_page_handle = pageIndex => {
    if (pagerMethods !== null) pagerMethods.setPage(pageIndex);
  };

  return (
    <>
      <div id='pager'>
        <Pager
          ref={node => (pagerMethods = node)}
          orientation='horizontal'
          animationStyle='scroll'
          wrapperStyle={{ width: '300px' }}
        >
          {/* Page with index (0) */}
          <div className='pageContainer'>...Page0 Content</div>

          {/* Page with index (1) */}
          <div className='pageContainer'>...Page1 Content</div>

          {/* Page with index (2) */}
          <div className='pageContainer'>...Page2 Content</div>
        </Pager>
      </div>
    </>
  );
}

Props

orientation : 'horizontal' | 'vertical'

  • Set horizontal or vertical pages arrangement orientation.
  • If you set it to vertical make sure to provide a height value in wrapperStyle prop otherwise it will be set to 50vh by default.
  • Default Value horizontal

initialPage : Number

  • Index of initial page that should be selected on the first render.
  • Default Value 0

loop : Boolean

  • Loop scrolling between pages.
  • Note: Loop scrolling does not work for touch swipe/drag gestures.
  • Default Value false

touchGestures : Boolean

  • Whether to enable or disable swipe/drag gestures for touch screens.
  • Default Value true

wrapperStyle : Object

  • Pager wrapper element inline style.
  • You can also use id or className attributes to add style from CSS StyleSheet.
  • Note: Pager wrapper element has a flex box style by default.

wheelScroll : Boolean

  • Change pages by rotating mouse scroll wheel.
  • Default Value true

wheelScrollWithAnimation : Boolean

  • Whether to use animation when changing pages with mouse scroll wheel or not.
  • Default Value true

showScrollbar : Boolean

  • Whether to show or hide Pager scrollbar.
  • Will show scrollbar on the bottom for horizontal orientation and on the left for vertical orientation.
  • Default Value false

animationStyle : 'blur' | 'opacity' | 'scroll' | 'scale' | 'scaleX' | 'scaleY' | 'rotateX' | 'rotateY'

  • Animation style when navigating through pages.
  • Note: touch swipe/drag gestures always uses scroll animation style.
  • Default Value scroll

perspective : Number

  • 3d transform perspective value used only for rotateX and rotateY animation style.
  • Default Value 1000

duration : Number

  • Navigation animation duration in ms.
  • Default Value 300

ease : String | Function

  • Navigation animation transition timing function.
  • Check easings.net to learn more.
  • Default Value easeOutExpo
  • If you want to provide your own timing-function make sure that the function takes one parameter and returns one value.
function easeInQuad(x) {
  return x * x;
}

onAnimation : ( event: Object ) => void

  • This callback will be called every time animation frame changes, including touch swipe/drag gestures.
Event propsDescriptionType
animationPercentageAnimation progress percentage, a value between (0 - 1).Number
selectedPageIndexThe page index that will be navigated to.Number
previousPageIndexThe page index that will be navigated from.Number
touchSwipeWhether the animation is coming from a touch swipe or not.Boolean

onNavigationStart : ( selectedPageIndex: Number, previousPageIndex: Number ) => void

  • This callback will be called once the pager starts navigating to the selected page.
  • Note: this callback will be called on the first render too.
ParamsDescriptionType
selectedPageIndexThe page index that will be navigated to.Number
previousPageIndexThe page index that will be navigated from.Number

onPageSelected : ( selectedPageIndex: Number, previousPageIndex: Number ) => void

  • This callback will be called once the pager finishes navigating to the selected page.
  • Note: this callback will be called on the first render too.
ParamsDescriptionType
selectedPageIndexThe page index that navigated to.Number
previousPageIndexThe page index that navigated from.Number

onPagerScroll : ( event: Object ) => void

  • Executed when transitioning between pages (ether because the animation for the requested page has changed or when the user is swiping/dragging between pages).
  • This is usefull for animating pages/tabs/slides indicators among other things.
Event propsDescriptionType
percentageXPager scrolled length percentage on the X axis, a value between (0 - 1).Number
percentageYPager scrolled length percentage on the Y axis, a value between (0 - 1).Number
scrollXPager current scrolling position on the X axis.Number
scrollYPager current scrolling position on the Y axis.Number
scrollWidthPager scroll width in px.Number
scrollHeightPager scroll height in px.Number
pagerWidthPager computed width in px.Number
pagerHeightPager computed height in px.Number
eventPager onscroll native event.Object

Methods

next : ( withAnimation?: Boolean = true ) => void

  • Navigate to the next page.
  • Takes a boolean param to enable/disable animation.

previous : ( withAnimation?: Boolean = true ) => void

  • Navigate to the previous page.
  • Takes a boolean param to enable/disable animation.

setPage : ( pageIndex: Number, withAnimation?: Boolean = true ) => void

  • Navigate to a specific page index.
  • Takes a number param (pageIndex) and a boolean param to enable/disable animation.
2.0.1

2 years ago

2.0.0

2 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago