# SwipeToNext 组件使用文档 ## 组件介绍 `SwipeToNext` 是一个通用的触底跳转组件,封装了手势检测、延迟防抖、提示文字等功能,可以在任何需要滑动跳转的页面中使用。 ## 组件特性 - ✅ 手势滑动检测 - ✅ 防误触发机制(延迟允许跳转) - ✅ 可配置的滑动阈值 - ✅ 自定义提示文字 - ✅ 支持事件监听 - ✅ 完全可配置的参数 ## 使用方法 ### 1. 引入组件 ```vue ``` ### 2. 基础使用 ```vue ``` ### 3. 完整配置使用 ```vue ``` ## Props 参数 | 参数名 | 类型 | 默认值 | 必填 | 说明 | |--------|------|--------|------|------| | `isLastSlide` | Boolean | `false` | ✅ | 是否在最后一页/最后一个状态 | | `targetPath` | String | - | ✅ | 跳转的目标路径 | | `showTip` | Boolean | `true` | ❌ | 是否显示提示文字 | | `tipText` | String | `'继续向上滑动进入下一章节'` | ❌ | 提示文字内容 | | `swipeThreshold` | Number | `80` | ❌ | 滑动阈值(像素) | | `delayTime` | Number | `500` | ❌ | 延迟允许跳转的时间(毫秒) | | `enableDelay` | Boolean | `true` | ❌ | 是否启用延迟机制 | | `alwaysEnable` | Boolean | `false` | ❌ | 是否总是启用跳转(忽略isLastSlide状态) | ## Events 事件 | 事件名 | 参数 | 说明 | |--------|------|------| | `swipe-to-next` | `targetPath` | 触发跳转时的回调事件 | ## 使用场景示例 ### 场景1:图片轮播页面 ```vue ``` ### 场景2:文章阅读页面 ```vue ``` ### 场景4:单张图片或总是启用触底跳转 ```vue ``` ```vue ``` ## 特殊情况处理 ### 单张图片问题 当只有一张图片时,传统的 `isLastSlide` 逻辑不适用。这时可以使用 `alwaysEnable` 参数: ```vue ``` ### 参数优先级 当 `alwaysEnable="true"` 时: - 忽略 `isLastSlide` 的值 - 总是显示提示文字 - 总是允许触底跳转 - 建议设置 `enableDelay="false"` 以获得更好的响应速度 1. **确保正确设置 `isLastSlide`**:这是控制是否允许跳转的关键属性 2. **路径格式**:`targetPath` 需要是有效的 uni-app 路由路径 3. **性能考虑**:如果不需要延迟机制,可以设置 `enableDelay: false` 来提高响应速度 4. **样式覆盖**:组件内的提示文字样式可以通过全局样式覆盖 5. **事件监听**:建议监听 `swipe-to-next` 事件进行数据统计或其他操作 ## 自定义样式 如果需要自定义提示文字的样式,可以在页面中添加: ```scss // 覆盖组件样式 .swipe-to-next .bottom-tip { bottom: 200rpx !important; // 调整位置 background: rgba(255, 255, 255, 0.9) !important; // 改变背景色 text { color: #333 !important; // 改变文字颜色 font-size: 32rpx !important; // 改变字体大小 } } ``` 这个组件极大地简化了触底跳转功能的实现,让你可以专注于业务逻辑而不用重复编写相同的手势检测代码。