在小程序页面里有自定义弹窗时候,发现弹窗外滚动的时候,底部背景页面也会跟随滚动。面对这个bug,我们可以用下面几种方法实现:

方法1:catchtouchmove=“true”

可以实现弹框背景不滚动,但是也会导致弹框自身无法滚动。
如果你的弹窗本身是不需要滚动的,用这个方法是极佳的。
ps:开发工具测试无效,真机上有效

<!-- 页面 -->
<view class="page"><button bindtap="showAction">点击出现弹框</button>
</view><!-- 弹框 -->
<view catchtouchmove="true"><view class="mask" wx:if="{{popup}}"></view><view class="half-screen-dialog {{popup?'half-screen-dialog_show':''}}"></view>
</view>
.page {width: 100%;height: 20000rpx;background-color: pink;
}

方法2:使用scroll-view包裹底部内容区

<!-- 页面 -->
<scroll-view class="page" scroll-y="{{true}}" scroll-x="{{false}}" enhanced="{{true}}" bounces="{{false}}"><view style="height: 3000rpx;background: green;"><button bindtap="showAction">点击出现弹框</button></view>
</scroll-view><!-- 弹框 -->
<view><view class="mask" wx:if="{{popup}}"></view><view class="half-screen-dialog {{popup?'half-screen-dialog_show':''}}"><view style="height: 3000rpx;background: red;"></view></view>
</view>
.page {position: absolute;top: 0;bottom: 0;left: 0;right: 0;overflow-y: auto;
}

方法3:弹框出现的时候,将底部背景页面的高度设置为100vh

<!-- 页面 -->
<view class="{{popup ? 'page-overflow-hidden' : ''}}"><view style="height: 3000rpx;background: green;"><button bindtap="showAction">点击出现弹框</button></view>
</view><!-- 弹框 -->
<view><view class="mask" wx:if="{{popup}}"></view><view class="half-screen-dialog {{popup?'half-screen-dialog_show':''}}"><view style="height: 3000rpx;background: red;"></view></view>
</view>
.page-overflow-hidden {height: 100vh;overflow: hidden;
}

相同的弹框样式如下:

.mask {position: fixed;z-index: 1000;top: 0;right: 0;left: 0;bottom: 0;background: rgba(0, 0, 0, 0.6);
}.half-screen-dialog {position: fixed;left: 0;right: 0;bottom: 0;height: 75%;z-index: 5000;line-height: 1.4;background-color: #FFFFFF;border-top-left-radius: 24rpx;border-top-right-radius: 24rpx;overflow-y: auto;transition: transform .3s;transform: translateY(100%);
}.half-screen-dialog_show {transform: translateY(0%);
}

相同的js如下:

Page({data: {popup: false},showAction() {this.setData({popup: true});},
})

微信小程序 - 解决弹框遮罩层的滚动穿透问题相关推荐

  1. 微信小程序 - 解决自定义添加遮罩层,底部页面仍滚动

    前言 底部的页面有滚动条,在自定义组件创建遮罩层时,底部页面仍然会滑动 解决方法: 为了防止事件冒泡,在遮罩层容器内设置 // 小程序 catchtouchmove="true" ...

  2. 微信小程序 禁止弹框下面的内容滑动 弹窗禁止底部内容滚动

    我们需要解决的问题:当弹框显示的时候,弹框下面的内容不能滚动 小程序的弹框特别多,像下面这样,弹框的底部是一个可以下拉的页面,但是当弹框出现的时候,需要禁止底部的滚动,那么怎么做呢? 解决方案: 给v ...

  3. [微信小程序]实现一个自定义遮罩层组件(完整示例代码附效果图)

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 先上效果图: 点击按钮Show显示遮罩层,再次点击屏幕任何地方隐藏遮罩层; <button bi ...

  4. 微信小程序底部弹框 showActionSheet

    志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...

  5. 微信小程序 自定义弹框组件

    话不多说直接上代码 目录 1.wxml 2.js 3.wxss 4.json 5.效果展示(具体内容可以自定义) 1.wxml <!--pages/components/confirmBox/c ...

  6. 微信小程序自定义弹框+生成二维码功能

    最近在做小程序的功能,需求是弹框生成二维码功能,所以根据需求自定义了一个弹框组件,后续其他地方也可以用到. 最后效果图如下 dialog部分 <!--components/dialog/dial ...

  7. 微信小程序之弹框modal

    官方文档 <modal hidden="{{hidden}}" title="这里是title" confirm-text="自定义确定按钮&q ...

  8. 微信小程序日历弹框组件

    参考文章:https://blogai.cn/posts/46 calendar.json {"usingComponents": {},"disableScroll&q ...

  9. android 遮罩 使底层无法点击,小程序防止点击遮罩层后遮罩层下面也反应(有点击事件)...

    小程序防止点击遮罩层后遮罩层下面也反应(有点击事件) 发布时间:2018-08-11 00:02, 浏览次数:1008 最近在做自定义弹窗,不免会使用到遮罩层或者说蒙层. 但是关键是,有遮罩层后,再点 ...

最新文章

  1. tcp retransmission 出现的原因_浅谈TCP的keepalive机制
  2. mac开发的时候必须要xcode
  3. mysql独有的函数_数据库之MySQL函数(一)
  4. Java小白进阶笔记(3)-初级面向对象
  5. C语言程序设计与有限元,C语言与有限元程序设计.pdf
  6. Struts2文件配置 登陆页面
  7. 《Adobe Premiere Pro CC经典教程》——6.2 节目监视器控件
  8. RBF神经网络和拟合实例
  9. 优思学院|一文读懂SFMEA、DFMEA、PFMEA的关系
  10. 学习笔记15--车道线检测
  11. 2018.11.07 NOIP训练 lzy的游戏(01背包)
  12. 盘点世界上千奇百怪的数据中心选址,这些地方你一定想不到!
  13. flutter 动画json_使用lottie加载json动画
  14. longest-common-prefix[最长公共子序列]
  15. 装甲逆袭-获取坦克界面
  16. 小红书竞品分析_小红书与网易考拉海购竞品分析报告
  17. Nginx 基本理论和安装
  18. **.Eet Framework win7系统安装失败报 时间戳和日期不符**
  19. java matcher group方法_Java中正则表达式相关类中Matcher.group()方法
  20. 《未来已来- 马云》笔记

热门文章

  1. 根据设计图设计rem比例
  2. 测试计划与测试方案包括内容
  3. Spring 面向切面编程 第3关:AOP实现原理-JDK动态代理
  4. 看病要排队(模拟做法)
  5. PotPlayer打开视频默认尺寸和播放无边框设置
  6. php定义学生类,十种建筑学生类型剖析,嘿同学,你在里面吗? | ?php echo C('PX...
  7. k8s --使用secret
  8. 【开源推荐】微信小程序公众号商城管理系统
  9. 2018年Android面经-BAT、头条、网易、爱奇艺、华为等等(上)
  10. [转]深度学习及并行化实现概述