uniapp 解决长按不松手还能穿透滑动的bug,解决双层弹出层层级问题

一、就长按不松手还能穿透滑动这个bug来说,官方文档有给出这一方法:

 @touchmove.stop.prevent="moveHandle" 

二、这样确实长按不松手不能移动了,但是新的bug是我随便点到图标上滑动就会打开弹窗。

随后我搜了很多资料,找到了这个大佬的方法,记录一下,附上原文链接

uni-app 长按事件无法被页面滚动或滑动阻止问题解决_chenyu-max的博客-CSDN博客_如何在滑动时禁止长按

原理是,写三个事件,一个是触摸移动事件,一个是长按事件,一个是触摸结束事件,都给一个相同的变量来判断开关,我这里给的是pullscowl:true,代码如下

data(){
    return{
        pullscowl: true,
        towshow: 0
    }
},
methods: {
    longtow(e, index) {
        //长按事件
	    this.towshow= index
	    if (this.pullscowl) {
	        this.$refs.towpop.open(e);//打开弹出层
	    }
    },
    touchMove() {
	    // 手指触摸后的移动事件
	    this.pullscowl = false;
    },
    touchEnd() {
        //手指触摸结束
	    this.pullscowl = true;
    }
}

触摸后移动的事件,给变量赋值为false,关闭弹窗状态;在手指触摸结束(手指离开屏幕),给变量赋值为true,打开弹窗状态,这样下一次长按时还是能够打开弹窗。

三、解决单页面双层列表,弹窗不覆盖,呈现叠层问题(就是长按上列表的图表,再按下列表的图标,点击下图标时上弹窗不消失,导致两个弹窗和背景蒙版都在的bug)

最后这个bug解决方法是,再加上一个开始触摸事件,在手指触摸开始时,把两个列表的图标索引值清空

touchstart(){
	this.ishow = '';
	this.towshow = ''
},

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值