打开弹蒙层禁止下方页面滚动
弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。但是在蒙层出现的时候滚动页面,如果不加处理,蒙层底部的页面会开始滚动,实际上我们是不希望他进行滚动的,因此需要阻止这种行为。当弹出蒙层时禁止蒙层下的页面滚动,也可以称为滚动穿透的问题。
以下是JQ的解决方案:
1 let pageScrollTop 2 3 // 当打开蒙层时 4 function openMask () { 5 // 你的执行代码 6 ... 7 8 pageScrollTop = document.documentElement.scrollTop 9 $('body').css({ 10 'width': '100%', 11 'position': 'fixed', 12 'top': -pageScrollTop, 13 'overflow-y': 'scroll' 14 }) 15 $('html').css({ 16 'scroll-behavior': 'auto' 17 }) 18 } 19 20 // 当关闭蒙层时 21 function closeMask () { 22 // 你的执行代码 23 ... 24 25 $('body').css({ 26 'top': '', 27 'position': '', 28 'width': '', 29 'overflow': '' 30 }) 31 window.scrollTo({ 32 top: pageScrollTop, 33 }) 34 $('html').css({ 35 'scroll-behavior': '', 36 }) 37 }
浙公网安备 33010602011771号