在做移動端遮罩層時柏副,發(fā)現(xiàn)頁面可以上下滾動勾邦,踩了N個坑之后,總算是解決了這個問題割择。
禁止?jié)L動
給body設(shè)置寬高都是100%眷篇,固定在左上角,溢出隱藏的樣式荔泳。
var body = document.body;
body.style.cssText = 'width: 100%; height: 100%; position: fixed; top: 0; left: 0;
overflow: hidden;';
但是蕉饼,這樣會有BUG:每次執(zhí)行這個,都會把頁面拉到最頂部玛歌,很明顯這樣是不行的昧港。解決方案如下:
var body = document.body;
var top = body.scrollTop;
body.style.cssText = 'width: 100%; height: 100%; position: fixed; top: -' + top + 'px;
left: 0; overflow: hidden;';
關(guān)閉遮罩層時:
body.removeAttribute('style');
body.scrollTop = top;
2018.09.27更新
document.body.scrollTop 存在兼容性問題,做個判斷:
if(document.documentElement.scrollTop){
top = document.documentElement.scrollTop;
}else if(document.body.scrollTop){
top = document.body.scrollTop;
}
注意支子,關(guān)閉遮罩層時最好加上 document.documentElement.scrollTop