@rn-components-kit/carousel
v1.0.2
Published
A slideshow component for cycling through elements (image or text), just like a carousel.
Downloads
5
Maintainers
Readme
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
horizontal
mode,width
anditemWidth
must be set. - When carousel is in
vertical
mode,height
anditemHeight
must be set. - If the data source of carousel's children would change, you should set the
data
prop. 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
style
initialIndex
draggable
vertical
width
height
itemWidth
itemHeight
gap
loop
cloneCount
centerModeEnabled
autoPlay
autoPlayDelay
showPagination
paginationStyle
dotStyle
curDotStyle
renderPagination
onIndexChange
scrollToPrev
scrollToNext
scrollToIndex
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 | null
Allow you to customize pagination module
|Type|Required|Default| |----|--------|-------| |function|no|-|
onIndexChange
(from: number, to: number) => void
A 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