uni-app中swiper标签在抖音小程序禁止用户touch操作属性无法使用

uni-app中swiper标签在抖音小程序禁止用户touch操作属性无法使用

操作步骤:

  • 从HbuilderX编译到抖音小程序后,使用swiper标签属性 :disable-touch='true' 后,用户依然能侧滑切换,这时候应该禁止用户touch操作。

预期结果:

  • 使用swiper标签属性 :disable-touch='true' 后, 应该禁止用户侧滑切换。

实际结果:

  • 从HbuilderX编译到抖音小程序后,使用swiper标签属性 :disable-touch='true' 后,用户依然能侧滑切换,这时候应该禁止用户touch操作。

bug描述:

  • swiper标签抖音小程序禁止用户touch操作属性无法使用。disable-touch属性值true以后,用户依然能侧滑切换swiper标签。swiper标签属性有这样的备注(抖音小程序与飞书小程序(只在初始化时有效,不能动态变更)),但是我这边也没有用过动态变更属性值。

图片

图片

项目信息表

项目信息
产品分类 uniapp/小程序/字节跳动
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 21H2
HBuilderX类型 正式
HBuilderX版本号 3.99
第三方开发者工具版本号 4.2.0
基础库版本号 3.11.0.1
项目创建方式 HBuilderX

更多关于uni-app中swiper标签在抖音小程序禁止用户touch操作属性无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

抖音小程序文档中的swiper没有这个属性 也没有可以禁止用户侧滑切换的属性 应该是uniapp文档写错了 不过可以用其他方法实现这个效果 做个遮盖层 覆盖在swiper上 这样用户就不会触摸到swiper了 也就不能切换了 参考下方代码 <template>
<view>
<view class="swiper_box">
<swiper class="swiper" circular :autoplay="true">
<swiper-item>
<view class="swiper-item uni-bg-red">A</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-green">B</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-blue">C</view>
</swiper-item>
</swiper>
<view class="swiper_box_mask">
</view>
</view>
</view>
</template>

<style> .swiper_box { position: relative; width: 100%; height: 300rpx; } .swiper_box_mask { position: absolute; top: 0; z-index: 1; width: 100%; height: 300rpx; } .swiper { height: 300rpx; } .swiper-item { display: block; height: 300rpx; line-height: 300rpx; text-align: center; } .uni-bg-red { background-color: red; } .uni-bg-green { background-color: green; } .uni-bg-blue { background-color: blue; } </style>

更多关于uni-app中swiper标签在抖音小程序禁止用户touch操作属性无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 中使用 swiper 组件时,如果你在抖音小程序中遇到无法禁止用户 touch 操作的问题,可能是因为抖音小程序对 swiper 组件的支持与微信小程序或其他平台有所不同。

在微信小程序中,你可以通过设置 disable-touch 属性来禁止用户手动滑动 swiper,但在抖音小程序中,这个属性可能不被支持或者行为不一致。

解决方案

  1. 使用 touchable 属性: 抖音小程序的 swiper 组件可能支持 touchable 属性来控制是否允许用户手动滑动。你可以尝试设置 touchablefalse 来禁止用户的 touch 操作。

    <swiper touchable="false">
      <swiper-item>Slide 1</swiper-item>
      <swiper-item>Slide 2</swiper-item>
      <swiper-item>Slide 3</swiper-item>
    </swiper>
    
  2. 使用 disable-touch 属性(如果支持): 如果抖音小程序支持 disable-touch 属性,你可以尝试使用它来禁止用户手动滑动。

    <swiper disable-touch>
      <swiper-item>Slide 1</swiper-item>
      <swiper-item>Slide 2</swiper-item>
      <swiper-item>Slide 3</swiper-item>
    </swiper>
    
  3. 通过事件拦截: 如果上述属性在抖音小程序中无效,你可以通过监听 touch 事件并阻止默认行为来实现禁止用户手动滑动的效果。

    <swiper [@touchstart](/user/touchstart)="handleTouchStart" [@touchmove](/user/touchmove)="handleTouchMove">
      <swiper-item>Slide 1</swiper-item>
      <swiper-item>Slide 2</swiper-item>
      <swiper-item>Slide 3</swiper-item>
    </swiper>
    
    export default {
      methods: {
        handleTouchStart(e) {
          // 阻止默认的 touch 事件
          e.preventDefault();
        },
        handleTouchMove(e) {
          // 阻止默认的 touch 事件
          e.preventDefault();
        }
      }
    }
回到顶部