移动端react弹出浮层如何阻止下面body滚动

首先,在触发弹出浮层事件后添加下面代码:

stopScroll(){
    e.stopPropagation();
    e.preventDefault();
},
showPop(){
    document.body.addEventListener("touchmove", self.stopScroll, {passive: false });
    document.body.style.overflow = 'hidden';
}
  • passive参数:
    是否让 阻止默认行为(preventDefault()) 失效

当触发关闭浮层事件后,需要添加如下代码恢复body滚动:

document.body.removeEventListener('touchmove',self.stopScroll);
//添加事件监听时添加了passive参数,在ios9中移除事件监听也需要加此参数
document.body.removeEventListener('touchmove',self.stopScroll,{passive: true});
document.body.style.overflow = 'auto';

你可能感兴趣的:(移动端react弹出浮层如何阻止下面body滚动)