react-shift
v2.2.0
Published
React carousel/slider with pagination.
Downloads
43
Readme
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.