解决Taro3.x框架Modal蒙层穿透问题
在使用 Taro 框架开发小程序时,我们可能会遇到一个常见问题,即 Modal 蒙层默认情况下是可以滚动的,导致在 Modal 弹出时用户仍然可以滚动页面,造成用户体验上的不便。本文将介绍一种解决方法,以防止 Modal 蒙层的穿透问题。
1. 问题分析
在 Taro 框架中,我们可以通过 @tarojs/components 包提供的 AtModal 组件来创建 Modal 弹窗。该组件允许用户点击蒙层来关闭弹窗,但默认情况下,蒙层是可以滚动的,从而导致在弹窗显示时仍然可以滚动页面。
2. 解决方法
2.1. 在Modal根元素View上绑定属性 catchMove,注意这个属性只有 Taro 3.0.21 才开始支持,测试时请使用真机预览查看。
<View className={rootClass} catchMove>
<View onClick={this.handleClickOverlay} className='at-modal__overlay'>
<View className='at-modal__container'>
......
</View>
</View>
</View>
兼容性:
- Taro 3.0.21才支持
- 你的项目框架大于Taro 3.0.21,可以优先使用此方案
2.2. 网上很多人说的设置定位fixed+记录滚动位置,当然也可以解决,且无taro版本兼容问题,如有需要请移步这里:禁止被穿透的组件滚动
A journey of a thousand miles begins with a single step!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构