8***@qq.com
8***@qq.com
  • 发布:2020-12-24 19:50
  • 更新:2023-05-10 16:03
  • 阅读:1786

【报Bug】nvue自定义弹窗安卓产生点击穿透

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window 10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.8

手机系统: Android

手机系统版本号: Android 11

手机厂商: 努比亚

手机机型: Z20

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<template>
<view class="newCommodity_warp w-100 position-relative">
<view class="bg-transparent w-100" :style="{'height':statusBarHeight+'px'}"></view>
<view class="content flex flex-column" style="height: 1000rpx;">
<view class="btn bg-danger w-100 align-center justify-center" style="height: 80rpx;margin-top: 500rpx;" @click="btn">
<text class="font text-white">弹窗下的按钮</text>
</view>
</view>
<div style="z-index:9999;overflow:hidden" v-if="isMask" catchtouchmove="false">
<div class="position-fixed top-0 left-0 right-0 bottom-0" style="background-color: rgba(0,0,0,0.5);"></div>
<div class="position-fixed left-0 right-0 bottom-0 bg-white pt-1" style="height: 400rpx;">
<text>内容</text>
</div>
</div>

</view>  

</template>

<script>
export default {
data() {
return {
statusBarHeight:0,
isMask:false
}
},
created() {
const res = uni.getSystemInfoSync();
const system = res.platform;
this.statusBarHeight = res.statusBarHeight;
},
methods: {
btn(){
this.isMask = !this.isMask
},
back(){
uni.navigateBack({
delta:1
})
},
}
}
</script>

<style scoped>

</style>

操作步骤:

nvue页面 直接复制代码即可运行
点击红色按钮 唤起弹窗

预期结果:

弹窗出现后 按钮不可点击

实际结果:

安卓端产生点击穿透 导致仍然可以点击弹窗下的按钮

bug描述:

在安卓端 自定义蒙版全屏弹窗下依然可以点击蒙版下的按钮 加catchtouchmove无效 造成误操作
IOS正常

2020-12-24 19:50 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者)

demo

猫猫儿

猫猫儿 - 猫猫儿

绑定click事件并在其中调用event.stopPropagation();

  • 8***@qq.com (作者)

    不行 试过了

    2020-12-24 21:19

8***@qq.com

8***@qq.com (作者)

代码已放置附件

  • DCloud_UNI_Anne

    你想要阻止啥?你的蒙蔽弹窗并没有全屏

    2020-12-29 16:11

  • 8***@qq.com (作者)

    回复 DCloud_UNI_Anne: 在弹窗的情况下安卓端仍然可以

    点击红色按钮,我现在就是想弹窗的

    时候阻止这个点击穿透

    2020-12-30 10:36

8***@qq.com

8***@qq.com (作者)

在弹窗的情况下安卓端仍然可以点击红色按钮,我现在就是想弹窗的时候阻止这个点击穿透

8***@qq.com

8***@qq.com

确实有这个问题的 解决的方法也简单 只需要 在蒙版的最外面的view 加一个点击事件就可以了 点击事件什么都不用做

7***@qq.com

7***@qq.com - www.evenfs.cn

nvue下出现点击穿透可以用如下方法

<div class="parent" @click="parentClick">  
 <div class="child"@click="childClick"></div>  
</div>  
methods: {  
            parentClick() {  
                console.log("父元素被点击了")  
            },  
            childClick(event) {  
                event.stopPropagation()  
                console.log("子元素被点击了")  
            }  
}
小邹

小邹 - uniapp酱油工

解决了没

要回复问题请先登录注册