react-shift v2.2.0
react-shift
A paginated "carousel-like" component for JSX elements. Can be used to serve pages of content or dropped as a small component into a larger stack.
Currently hard-swaps content, so smooth scrolling/sliding can only be simulated using ReactCSSTransitionGroup
.
Installation
npm install react-shift --save
Getting started
render(
<Shift>
<div>First page</div>
<div>Second page</div>
<div>Third page</div>
</Shift>,
node
);
Props
The component can be passed objects as props to customize the navigation and page elements.
Name | Type | Properties | Description | Default |
---|---|---|---|---|
arrowLabels | object | next , previous | Specifies custom next and previous page link labels. | { next: 'Next page', previous: 'Previous page' } |
fastLinks | object | Custom key/value pairs each defining a fast links. | Creates a shortcut link to a page, where the key is the link name and the value is the page index to link to. | null |
fakeLinks | boolean | N/A | Toggles psuedohyperlinking on naviation elements. | true |
transitions | object | active , name | Used to activate and define ReactCSSTransitionGroup on the page subcomponent. | null |
classes | object | wrapper , navigation , page , pagination , pageNumber 1, currentPage , fastLinks , navArrow , nextPage , previousPage , arrowFiller 2 | Passes class names to subcomponent className properties. | null |
styles | object | wrapper , navigation , page , pagination , pageNumber 3, currentPage , fastLinks , navArrow , nextPage , previousPage , arrowFiller 2 | Passes styles to subcomponent style properties. | null |
scrollable 4 | boolean | N/A | Specifies if mouse wheel scrolling events on the page subcomponent triggers page changes. | false |
1 pageNumber
applies that generic className every page number element, but also creates a unique class name on each page number using ${yourDefinedClass}-${pageIndex}
.
2 arrowFiller
can be used to override navArrow styling normally applied to the empty space reserved for page arrows.
3 Unlike the className
version, this prop does not currently offer unique styling for each page index number.
4 This feature is highly experimental and not recommended for use. Seriously, don't use it; it makes the component nearly unusable on laptop touchpads and mobile devices.
Advanced example:
const arrowLabels = {
next: '>>>',
previous: '<<<'
};
const fastLinks = {
'Third page': 2,
'Fifth page': 4
};
const classes = {
navigation: 'react-shift-navigation',
page: 'react-shift-page',
pagination: 'react-shift-pagination',
pageNumber: 'react-shift-page-number',
currentPage: 'react-shift-current-page',
fastLinks: 'react-shift-fast-link',
navArrow: 'react-shift-nav-arrow',
nextPage: 'react-shift-next-page',
previousPage: 'react-shift-previous-page'
};
ReactDOM.render(
<Shift
classes={classes}
arrowLabels={arrowLabels}
fastLinks={fastLinks}
transitions={transitions}
<div>First page</div>
<div>Second page</div>
<div>Third page</div>
</Shift>,
document.getElementById('react-shift-anchor')
);
Demo
npm run demo
Open demo.html
in a browser.
8 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago