Skip to content

Commit 70e856c

Browse files
committed
fix(Swiper): 修复轮播图第一张图往左拖拽无法到最
后一张图
1 parent 4a909a9 commit 70e856c

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

packages/core/src/Swiper/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ export default SwiperDemo
3838
| borderRadius | 圆角边框 | Number | 0 |
3939
| autoplay | 是否开启定时器 | Boolean | true|
4040
| dotStyle | 圆点类型 ( dot : 圆点, block : 方块 ) | String | dot |
41-
| loading | 加载状态 | Boolean | false |
41+
| loading | 加载中状态 | Boolean | false |

packages/core/src/Swiper/index.tsx

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,23 @@ export interface dataSourceType {
1717
}
1818
export type dotType = 'dot' | 'block';
1919
export interface SwiperProps {
20-
// 数据源
20+
/** 图片数据源 */
2121
dataSource?: dataSourceType[];
22-
// 轮播图宽度
22+
/** 轮播图宽度 */
2323
width?: number;
24-
// 轮播图高度
24+
/** 轮播图高度 */
2525
height?: number;
26-
// 播放时间
26+
/** 播放时间 */
2727
time?: number;
28-
// 圆角边框
28+
/** 圆角边框 */
2929
borderRadius?: number;
30-
// 是否开启自动播放
30+
/** 是否开启自动播放 */
3131
autoplay?: boolean;
32-
// 指示点样式 dot: 圆点 block: 方块
32+
/** 指示点样式 dot: 圆点 block: 方块 */
3333
dotStyle?: dotType;
34-
// 初始位置
34+
/** 初始位置 */
3535
index?: number;
36+
/** 是否加载中 */
3637
loading?: boolean;
3738
}
3839
const Swiper = (porps: SwiperProps) => {
@@ -105,7 +106,12 @@ const Swiper = (porps: SwiperProps) => {
105106
let offSetX = e.nativeEvent.contentOffset.x;
106107
let mentWidth = e.nativeEvent.layoutMeasurement.width;
107108
let page = offSetX / mentWidth;
108-
109+
// 第一张图片
110+
if (page === 0 && offSetX <= 0) {
111+
setCurIndex(dataSource.length - 1);
112+
scrollToRef.current.scrollTo({ x: dataSource.length * width, y: 0, animated: false }); // 让 ScrollView 定位到最后一张图片
113+
}
114+
// 最后一张图片
109115
if (page === dataSource.length) {
110116
setCurIndex(0);
111117
scrollToRef.current.scrollTo({ x: 0, y: 0, animated: false });

0 commit comments

Comments
 (0)