|
17 | 17 | <br/> |
18 | 18 |
|
19 | 19 | ## 原因 |
| 20 | + |
20 | 21 | 🎉 **易用、无限滚动、完全使用 Reanimated2 实现** |
21 | 22 |
|
22 | 23 | > 常见的无限滚动轮播图,在快速滑动时会出现卡住的情况,这是因为实现方式而导致的问题。这个组件用了不同的方式来实现,解决了这个问题,这就是创建这个库的原因。 |
23 | 24 |
|
24 | 25 | > 目前他只满足了我工作上的需要,欢迎大家的 ISSUES/PR。[在 SNACK 上尝试](https://snack.expo.dev/@zhaodonghao586/simple-carousel) |
25 | 26 |
|
26 | | - |
27 | 27 | <p align="center"> |
28 | 28 | 使用react-native-snap-carousel快速滑动,当到连接处时可以看清楚的看到卡顿。(gif 4.6mb) |
29 | 29 | </p> |
|
38 | 38 | <img src="assets/fast.gif" width="50%"/> |
39 | 39 | </p> |
40 | 40 |
|
41 | | - |
42 | 41 | --- |
43 | 42 |
|
44 | 43 | ## 安装 |
@@ -87,24 +86,25 @@ import Carousel from "react-native-reanimated-carousel"; |
87 | 86 |
|
88 | 87 | ## Props |
89 | 88 |
|
90 | | -| name | required | default | types | description | |
91 | | -| ----------------------- | -------- | --------------- | ------------------------------------------- | ----------------------------------------------------------------------- | |
92 | | -| data | ✅ | | T[] | 即将渲染的数据集合 | |
93 | | -| width | ✅ | | number | 轮播图容器的宽度 | |
94 | | -| renderItem | ✅ | | (data: T, index: number) => React.ReactNode | 渲染元素的方法 | |
95 | | -| autoPlay | ❌ | false | boolean | 是否自动播放 | |
96 | | -| autoPlayReverse | ❌ | false | boolean | 是否倒序自动播放 | |
97 | | -| autoPlayInterval | ❌ | 1000 | autoPlayInterval | 自动播放的间隔 | |
98 | | -| mode | ❌ | defalut | 'default'\|'parallax' | 轮播图播放模式,`default`为默认无任何 UI 效果,演示图片使用的`parallax` | |
99 | | -| loop | ❌ | true | boolean | 是否循环播放 | |
100 | | -| parallaxScrollingOffset | ❌ | 100 | number | 当使用 mode=`parallax`,这个属性可以控制两侧图片离中间元素的距离 | |
101 | | -| parallaxScrollingScale | ❌ | 0.8 | number | 当使用 mode=`parallax`,这个属性可以控制两侧图片的缩放比例 | |
102 | | -| style | ❌ | {} | ViewStyle | 轮播图容器样式 | |
103 | | -| height | ❌ | '100%' | undefined \| string \| number | 指定轮播图容器高度 | |
104 | | -| timingConfig | ❌ | {duration: 250} | Animated.WithTimingConfig | 配置动画效果 | |
105 | | -| onSnapToItem | ❌ | | (index: number) => void | 切换至另一张轮播图时触发 | |
106 | | -| onScrollBegin | ❌ | | () => void | 切换动画开始时触发 | |
107 | | -| onScrollEnd | ❌ | | (previous: number, current: number) => void | 切换动画结束时触发 | |
| 89 | +| name | required | default | types | description | |
| 90 | +| ----------------------- | -------- | --------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------- | |
| 91 | +| data | ✅ | | T[] | 即将渲染的数据集合 | |
| 92 | +| width | ✅ | | number | 轮播图容器的宽度 | |
| 93 | +| renderItem | ✅ | | (data: T, index: number) => React.ReactNode | 渲染元素的方法 | |
| 94 | +| autoPlay | ❌ | false | boolean | 是否自动播放 | |
| 95 | +| autoPlayReverse | ❌ | false | boolean | 是否倒序自动播放 | |
| 96 | +| autoPlayInterval | ❌ | 1000 | autoPlayInterval | 自动播放的间隔 | |
| 97 | +| mode | ❌ | defalut | 'default'\|'parallax' | 轮播图播放模式,`default`为默认无任何 UI 效果,演示图片使用的`parallax` | |
| 98 | +| loop | ❌ | true | boolean | 是否循环播放 | |
| 99 | +| parallaxScrollingOffset | ❌ | 100 | number | 当使用 mode=`parallax`,这个属性可以控制两侧图片离中间元素的距离 | |
| 100 | +| parallaxScrollingScale | ❌ | 0.8 | number | 当使用 mode=`parallax`,这个属性可以控制两侧图片的缩放比例 | |
| 101 | +| style | ❌ | {} | ViewStyle | 轮播图容器样式 | |
| 102 | +| height | ❌ | '100%' | undefined \| string \| number | 指定轮播图容器高度 | |
| 103 | +| timingConfig | ❌ | {duration: 250} | Animated.WithTimingConfig | 配置动画效果 | |
| 104 | +| onSnapToItem | ❌ | | (index: number) => void | 切换至另一张轮播图时触发 | |
| 105 | +| onScrollBegin | ❌ | | () => void | 切换动画开始时触发 | |
| 106 | +| onScrollEnd | ❌ | | (previous: number, current: number) => void | 切换动画结束时触发 | |
| 107 | +| panGestureHandlerProps | ❌ | {} | Omit<Partial\<PanGestureHandlerProps\>,'onHandlerStateChange'> | PanGestureHandler props | |
108 | 108 |
|
109 | 109 | ## Ref |
110 | 110 |
|
|
0 commit comments