更新记录

1.0.0(2026-06-13)

  • 初始版本。
  • 支持 H5 / App-vue 横向滑动。
  • 禁用首尾回弹,规避露底问题。
  • 支持 current 外部控制、changetransitionanimationfinish 事件。

平台兼容性

uni-app(5.08)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Chrome插件版本 Safari Safari插件版本 app-vue app-vue插件版本 app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × - - - - - - -

uni-app x(5.08)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

bf-swiper 无回弹横向 swiper

bf-swiper 是一个基于 BetterScroll + renderjs 的 uni-app 横向滑动组件,适合在 H5 / App-vue 中替代原生 swiper,解决滑动到最左侧或最右侧时出现回弹、露底的问题。

当前版本面向 Vue2 + App-vue / H5。小程序、nvue、uvue 不支持 renderjs 方案,建议继续使用原生 swiper

安装依赖

如果项目还没有安装 BetterScroll,请先安装:

npm install @better-scroll/core @better-scroll/slide

基础用法

<template>
  <bf-swiper
    :pages="4"
    :current="current"
    height="100vh"
    width="100vw"
    @change="handleChange"
    @transition="scrollable = false"
    @animationfinish="scrollable = true"
  >
    <template #dot="{ current }">
      <view class="tabs">当前页:{{ current }}</view>
    </template>

    <template #tab1>
      <view class="page">第一页</view>
    </template>

    <template #tab2>
      <view class="page">第二页</view>
    </template>

    <template #tab3>
      <view class="page">第三页</view>
    </template>

    <template #tab4>
      <view class="page">第四页</view>
    </template>
  </bf-swiper>
</template>

<script>
export default {
  data() {
    return {
      current: 0,
      scrollable: true,
    };
  },
  methods: {
    handleChange(index) {
      this.current = index;
    },
  },
};
</script>

API

Props

参数 说明 类型 默认值
pages 页面数量 Number 1
current 当前页索引,从 0 开始 Number 0
width 组件宽度 String 100vw
height 组件高度 String 100vh
zIndex 组件层级 Number/String 1
threshold 切换阈值,传给 BetterScroll slide Number 100

Slots

名称 说明
dot 指示器/自定义 tab 区域,slot props 提供 { current }
tab1、tab2... 页面内容插槽。current = 0 对应 tab1current = 1 对应 tab2

Events

事件 说明 回调参数
change 页面切换完成 当前页索引
transition 开始滑动 -
animationfinish 滑动结束 当前页索引

发布到 DCloud 插件市场

  1. 修改 uni_modules/bf-swiper/package.json 中的 iddisplayNamedescriptionkeywordsrepository、联系方式等信息。id 需要在插件市场唯一。
  2. 确认 uni_modules.platforms 里的兼容端。本组件目前建议标记为 H5、App-vue 支持,小程序、nvue、uvue 不支持。
  3. 在 HBuilderX 中右键 uni_modules/bf-swiper,选择发布到插件市场;或登录 DCloud 插件市场后台创建插件并上传这个 uni_modules/bf-swiper 目录。
  4. 发布前至少测试 H5、Android App、iOS App 三类场景,重点验证首尾滑动不露底、外部 current 切换、页面销毁重进、嵌套滚动区域。

注意事项

  • 本组件通过 bounce: false 禁用 BetterScroll 的边界回弹,因此不会出现原生 swiper 首尾露底效果。
  • 页面内容如果有纵向滚动,建议在 transitionanimationfinish 中控制内部滚动开关,避免横向滑动时误触。
  • 如果业务需要小程序端,请保留条件编译,在小程序端继续使用原生 swiper

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。