htmledit_views">
最终解决方案:使用当弹窗出现的时候将页面body的position设置为fixed并记录此刻滚动的位置,弹窗消失去除position属性
遮罩层显示
onInviteFriendClick() {
this.viewState.shareCover.visible = true;
//遮罩出现不可以滚动
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
document.body.style.cssText += 'position:fixed;width:100%;top:-' + scrollTop + 'px;';
}
遮罩层关闭 -----点击使遮罩消失
onVisibleClick = () => {
const oldVisible = this.viewState.shareCover.visible;
Object.assign(this.viewState, {
shareCover: {
visible: !oldVisible
}
});
//去除遮罩恢复滚动
if (!this.viewState.shareCover.visible) {
let body = document.body;
body.style.position = '';
let top = body.style.top;
document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top);
body.style.top = '';
}
};
参考网址:https://www.cnblogs.com/GuliGugaLiz/p/11589331.html