@rn-components-kit/carousel v1.0.2
Carousel
English | 中文
A slideshow component for cycling through elements (image or text), just like a carousel. It supports the following features:
- horizontal/vertical two directions
- loop mode
- auto play mode
- center mode, item would be adjusted to the screen's center
- supports children that have lengths smaller than the container
:warning: NOTE
- When carousel is in
horizontalmode,widthanditemWidthmust be set. - When carousel is in
verticalmode,heightanditemHeightmust be set. - If the data source of carousel's children would change, you should set the
dataprop. Or the children of carousel would not be updated. - Following picture will help you understand some important required variables:
How to use
npm install @rn-components-kit/carousel --save| Preview | Code |
|---|---|
| Demo1 Code | |
| Demo2 Code | |
| Demo3 Code | |
| Demo4 Code | |
| Demo5 Code | |
| Demo6 Code | |
| Demo7 Code |
Props
styleinitialIndexdraggableverticalwidthheightitemWidthitemHeightgaploopcloneCountcenterModeEnabledautoPlayautoPlayDelayshowPaginationpaginationStyledotStylecurDotStylerenderPaginationonIndexChangescrollToPrevscrollToNextscrollToIndex
Reference
Props
style
Allows you to customize style
| Type | Required | Default |
|---|---|---|
| object | no | - |
initialIndex
Determines the position when carousel first show
| Type | Required | Default |
|---|---|---|
| number | no | 0 |
draggable
Determines whether carousel can be dragged to slide to prev/next one
| Type | Required | Default |
|---|---|---|
| boolean | no | true |
vertical
Determines whether caousel is in horizontal or vertical direction
| Type | Required | Default |
|---|---|---|
| boolean | no | false |
width
The width of carousel (when carousel is in horizontal mode, it must be set)
| Type | Required | Default |
|---|---|---|
| number | no | - |
height
The height of carousel (when carousel is in vertical mode, it must be set)
| Type | Required | Default |
|---|---|---|
| number | no | - |
itemWidth
The width of each item in carousel (when carousel is in horizontal mode, it must be set)
| Type | Required | Default |
|---|---|---|
| number | no | - |
itemHeight
The height of each item in carousel (when carousel is in vertical mode, it must be set)
| Type | Required | Default |
|---|---|---|
| number | no | - |
gap
When item's length is smaller than container, gap can be used to separate items
| Type | Required | Default |
|---|---|---|
| number | no | 0 |
loop
Determines whether carousel's loop mode is enabled
| Type | Required | Default |
|---|---|---|
| boolean | no | false |
cloneCount
When loop mode is enabled, there will be cloneCount copied elements placed at both sides of items
| Type | Required | Default |
|---|---|---|
| number | no | 3 |
centerModeEnabled
When item's length is smaller than container, item would be adjusted to the center of carousel if centerModeEnabled is true. In this case, prev/current/next elements will be all in one screen
| Type | Required | Default |
|---|---|---|
| boolean | no | false |
autoPlay
Determines whether auto play mode is enabled
| Type | Required | Default |
|---|---|---|
| boolean | no | false |
autoPlayDelay
When auto play mode is enabled, it determines how long it takes between two scrolling animations (ms)
| Type | Required | Default |
|---|---|---|
| number | no | 3000 |
showPagination
Determines whether pagination module is shown in carousel
| Type | Required | Default |
|---|---|---|
| boolean | no | false |
paginationStyle
Allow you to customize pagination's container style
| Type | Required | Default |
|---|---|---|
| object | no | - |
dotStyle
Allow you to customize pagination's dot style
| Type | Required | Default |
|---|---|---|
| object | no | - |
curDotStyle
Allow you to customize pagination's current dot style
| Type | Required | Default |
|---|---|---|
| object | no | - |
renderPagination
(info: {curIndex: number, total: number}) => React.ReactElement | nullAllow you to customize pagination module
| Type | Required | Default |
|---|---|---|
| function | no | - |
onIndexChange
(from: number, to: number) => voidA callback will be triggered when carousel's scrollIndex changes
| Type | Required | Default |
|---|---|---|
| function | no | () => {} |
Methods
scrollToPrev()
scrollToPrev();Scrolls to prev item
scrollToNext()
scrollToNext();Scrolls to next item
scrollToIndex()
scrollToIndex([options]: {index: number, animated: boolean});Scrolls to the item at the specified index