这种场景很常见,通常是在弹窗弹起的时候同时修改body的样式,将body的内容通过overflow切掉当前窗口以外的内容(实际上就是给body定个位,然后top设置成当前滚动的位置。)
给你个示例代码:
if(val){//弹窗弹起的时候
this.top = document.documentElement.scrollTop;
document.body.style.position = 'fixed';
document.body.style.height = '100vh';
document.body.style.overflow = 'hidden';
document.body.style.top = -+this.top+'px';
}else{//弹窗消失的时候
document.body.style.position = 'static';
document.body.style.height = 'auto';
document.body.style.overflow = 'auto';
window.scrollTo(0,this.top)
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…