移动端弹出层会出现外层容器的滚动

首先滚动贯穿现象:当前容器已经滚动到底部或者顶部,无法再滚动,容器会默认选择上层可容器进行滚动,可以说滚动贯穿并非是一个bug,只是一种现象

1:场景一 弹出层无需滚动 body有滚动

js方法:在当前弹出层添加事件,组织当前弹出层的默认事件
css方法  html,body{height:100%;overflow:hidden;}


2,场景2 弹出层有滚动,body 这时候解决滚动贯穿就比较麻烦

具体做法:
首先监听当前弹出层的滚动,并且判断手势是朝上还是朝下
(1)如果弹出层滚动距离为0  并且手势朝下  那么阻止当前弹出层默认事件
(2)如果滚动距离已经到顶部 并且手势朝上 那么阻止当前弹出层默认事件

判断手势可以 注册touch事件 首先记录PageY
在move的时候判断pageY是大于刚才记录的pageY还是小于pageY

注意:一定要以最初的方向,朝上就永远朝上,朝下就永远朝下

小黑Kje7J
9 声望2 粉丝