uni-app swiper滑块视图容器抖音小程序下disable-touch属性无效

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app swiper滑块视图容器抖音小程序下disable-touch属性无效

操作步骤:

<swiper :disable-touch="disableTouch" ></swiper>

预期结果:

设置disable-touch属性应禁止用户滑动swiper页面

实际结果:

设置disable-touch为true后,无效

bug描述:

在根据官方文档在swiper组件上设置disable-touch的初始状态(文档上写只在初始化时有效,不能动态变更),那么我只设置了初始状态,并没有动态改变,经测试在开发者工具上和真机展示中都可以滑动swiper页面。

项目信息 详情
产品分类 uniapp/小程序/字节跳动
PC开发环境 Windows
PC开发环境版本 22H2
HBuilderX类型 正式
HBuilderX版本 3.99
工具版本 4.2.1
基础库版本 3.14.0.1
项目创建方式 HBuilderX

Image Image


1 回复

uni-app 中使用 swiper 组件时,disable-touch 属性在抖音小程序下可能无效。这个问题可能是由于抖音小程序对 swiper 组件的实现与微信小程序或其他平台存在差异所致。

可能的解决方案

  1. 检查版本兼容性: 确保你使用的 uni-app 版本和抖音小程序基础库版本是最新的,因为某些问题可能在后续版本中得到修复。

  2. 使用 touchable 替代: 如果 disable-touch 属性无效,你可以尝试使用 touchable 属性来控制用户是否可以手动滑动 swiper。例如:

    <swiper :touchable="false">
      <swiper-item>1</swiper-item>
      <swiper-item>2</swiper-item>
      <swiper-item>3</swiper-item>
    </swiper>
  3. 手动禁止滑动: 你可以通过监听 touchstarttouchmove 事件,手动禁止滑动行为。例如:

    <swiper [@touchstart](/user/touchstart)="handleTouchStart" [@touchmove](/user/touchmove)="handleTouchMove">
      <swiper-item>1</swiper-item>
      <swiper-item>2</swiper-item>
      <swiper-item>3</swiper-item>
    </swiper>
    export default {
      methods: {
        handleTouchStart(e) {
          // 阻止默认行为
          e.preventDefault();
        },
        handleTouchMove(e) {
          // 阻止默认行为
          e.preventDefault();
        }
      }
    }
  4. 使用 disable-touch 的替代方案: 如果你仍然希望使用 disable-touch 属性,可以尝试通过动态绑定 disable-touch 的值来控制是否禁用滑动。例如:

    <swiper :disable-touch="isDisabled">
      <swiper-item>1</swiper-item>
      <swiper-item>2</swiper-item>
      <swiper-item>3</swiper-item>
    </swiper>
    export default {
      data() {
        return {
          isDisabled: true
        }
      }
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!