移动端弹窗上滑动时候,底层body元素也跟着滚动,简称为滚动穿透问题。
网上查询了下解决方案,方案很多,大多数搞得很复杂,有判断滑动方向的,有禁用touchmove事件的等等,简单使用一下几步解决这个问题:
1.弹出遮罩的时候,设置body元素的俩属性overflow为hidden,position为fixed,并记录下此时滚动条距离顶部的位置,
this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
2.关闭弹窗的时候,恢复overflow属性为auto,position为static,并滚动到记录的位置:
document.body.scrollTop = document.documentElement.scrollTop = this.scrollTop || 0;