> 原码地址*css
> 蒙层穿透就是,当你用fixed 布局让蒙层显示的时候, 手指滑动屏幕会出现底部内容也滑动的现象. 如图: html
当蒙层出现的时候,你滚动屏幕,底部内容也一块儿跟着滚动。 这就是蒙层穿透, 也能够叫 '滚动穿透'. 固然出现这种状况, 用户体验固然是很差的了。 因此做为一个有点追求的工程师固然是不容许这种状况的发生了(手动狗头...)前端
## 解决方案git
这种要分状况,github
直接监听 catch:touchmove 方法, 而后直接返回就能够了。 web
代码能够去看 fixed 目录下的文件 小程序
主要代码:segmentfault
*// wxml* <view class="fixed-mask" bind:tap="hideMsak" wx:if="{{isShowMask}}" catch:touchmove="stopMove"> <view class="mask-container" > <view class="mask__item"> I am {{dogName}} </view> </view> </view> *// css* .fixed-mask { position: fixed; left: 0; top: 0; height: 100vh; width: 100vw; background: #333; opacity: 0.8; z-index: 2; } .mask-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .mask__item { margin: 0 auto; background-color: #ff0015; text-align: center; width: 500rpx; height: 500rpx; line-height: 500rpx; margin-bottom: 20rpx; } *// js* stopMove () { return; }
效果以下:微信小程序
上面是当弹窗没有滚动条的状况, 当弹窗出现滚动条的时候。微信
哦豁, 完蛋, 弹窗不能滚动了。
方法一:
动态给底部滚动的元素 添加固定定位。也就是当出现弹窗的时候添加一个 class 样式类
效果如图:
代码在 scroll1 文件夹。
*// css* .bottom-fixed { position: fixed; left: 0; top: 0; overflow: hidden; } *// wxml* <view class="dog-container {{isShowMask ? 'bottom-fixed' : ''}}"></view>
你们能够看到 由于底部元素给固定到页面顶部了, 而不是你点击弹窗时出现的位置。目前本身尚未找到解决方法。 若是大佬有会的, 不吝赐教。。
*方法二:*
> scroll-view 设置高度 以及纵向滚动方向。
不过scroll-view 会有一些bug
代码在 scrooll 文件夹
效果以下图:
[完]
原文连接
【做者简介:】 Mars 芦苇科技web前端开发工程师 喜欢 看电影 ,撸铁 还有学习。擅长 微信小程序开发, 系统管理后台。访问 www.talkmoney.cn 了解更多
做者主页: