解决小程序的遮罩层滚动穿透

遮罩层滚动穿透分为两种情况:

1.如果弹出层没有滚动事件,就直接在蒙板上加catchtouchmove="preventTouchMove" preventTouchMove:function(){};
示例代码:

 

<view class="mask" catchtouchmove="preventTouchMove">
    我是遮罩层
</view>

2.如果弹出层有滚动事件,那么在弹出层出现的时候给底部的containerView加上一个class 消失的时候移除。

示例代码:

 

<view class="mask" wx:if="{{hasMask}}">
    我是遮罩层
</view>

<view class="content" class="{{hasMask ? 'preventTouchMove' : ' '}}">
    我是页面内容
</view>
<!-- js -->
Page{
    ...
    showMask(e){
        //显示遮罩
        this.setData({
            hasMask:true
        })
    },
    hideMask(e){
    //隐藏遮罩
        this.setData({
            hasMask:false
        })
    },
}
<!-- css-->
.preventTouchMove{
    top: 0px ; 
    left:   0px ; 
    width:   100% ; 
    height:   100% ; 
    overflow:   hidden ; 
    position:   fixed ; 
    z-index:   0 ; 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值