react-card-carousel
Version:
Simple React carousel.
99 lines (84 loc) • 3.44 kB
Markdown
A simple React carousel.
* <a href="https://github.com/TomorrowIdeas/react-card-carousel" target="_blank">GitHub</a>
* <a href="https://codesandbox.io/s/react-card-carousel-0gib5" target="_blank">Demo</a>
```
npm install react-card-carousel --save
```
Be sure to have all peer dependencies installed as well. React Card Carousel requires the peer dependencies below:
* `react`
* `react-dom`
* `prop-types`
* 1.1.3 fixed setState warning on componentWillUnmount
* Removed styled-components as a peer dependency
* Greatly reduced package size
* Various bug fixes
Import ReactCardCarousel and use it as a wrapper around card elements. Example:
```
import React, { Component } from 'react';
import ReactCardCarousel from 'react-card-carousel';
class MyCarousel extends Component {
static get CARD_STYLE() {
return {
height: '200px',
width: '200px',
paddingTop: '80px',
textAlign: 'center',
background: '#52C0F5',
color: '#FFF',
fontSize: '12px',
textTransform: 'uppercase',
borderRadius: '10px',
};
}
render() {
return (
<ReactCardCarousel autoplay={ true } autoplay_speed={ 2500 }>
<div style={ MyCarousel.CARD_STYLE }>
First Card
</div>
<div style={ MyCarousel.CARD_STYLE }>
Second Card
</div>
<div style={ MyCarousel.CARD_STYLE }>
Third Card
</div>
<div style={ MyCarousel.CARD_STYLE }>
Fourth Card
</div>
<div style={ MyCarousel.CARD_STYLE }>
Fifth Card
</div>
</ReactCardCarousel>
);
}
}
export default MyCarousel;
```
* `alignment` (String, oneOf[`horizontal`, `vertical`], default: `horizontal`): Card alignment display.
* `spread` (String, oneOf[`narrow`, `medium`, `wide`], default: `medium`): Spread between cards.
* `initial_index` (Number, default: 0): Which card to display as center card initially.
* `disable_keydown` (Boolean, default: false): Disables left and right arrow key scroll.
* `disable_box_shadow` (Boolean, default: false): Disables box shadow around center card.
* `disable_fade_in` (Boolean, default: false): Disables initial animation on component render.
* `autoplay` (Boolean, default: false)
* `autoplay_speed` (Number, default: 5000): Number in milliseconds.
* `afterChange` (Function, default: null): After card change function.
To use any instance methods, you must first create a ref to the ReactCardCarousel instance. Learn more about React refs in the official <a href="https://reactjs.org/docs/refs-and-the-dom.html" target="_blank">documentation</a>.
```
<ReactCardCarousel ref={ Carousel => this.Carousel = Carousel }>
```
The methods can be accessed on the `this.Carousel` instance:
* `this.Carousel.next()`: Sets next card as center card.
* `this.Carousel.prev()`: Sets previous card as center card.
* `this.Carousel.goTo(index)`: Sets the specified number index as center card.
* `this.Carousel.getCurrentIndex()`: Gets current card index.
*NOTE*: If you choose to create the ref using React.createRef() instead of using a callback ref, the methods can be accessed on the `this.Carousel.current` instance.
Created by <a href="https://github.com/strawbee" target="_blank">@strawbee</a> at <a href="https://tomorrow.me">Tomorrow Ideas</a>.