完美解决js 禁止滚动条滚动,并且滚动条不消失,页面大小不闪动

JavaScript020

完美解决js 禁止滚动条滚动,并且滚动条不消失,页面大小不闪动,第1张

当前的项目遇到了这个问题, 当打开dialog的时候,希望主页面的滚动条不要滚动。 一番搜索之后,发现大家的解决办法分为两种。一种就是隐藏滚动条 ,但是这样的话,前台页面会因为滚动条的隐藏和出现而发生宽度的变化。 这就使得每次一打开dialog页面就会伸缩。十分难受。第二种 就是不知道从哪儿抄的这种方法。一番修改之后,我也没好用。 最后 终于在外网找到个完美解决方案。 根据需求自行修改。 *(在scrollTo方法中,最好加上behavior:'instant')

这个要看你自己的需求是什么。如果单纯的是想在某个模块不要滚动的话直接overflow:hidden就可以。如果需要整个页面都不想要浏览器的滚动行为可以用JS阻止浏览器行为,比如:

event.preventDefault()//firefox等

event.returnValue = false//IE系列

document.body.parentNode.style.overflow = “hidden"//隐藏且禁用横向纵向两个滚动条

document.body.parentNode.style.overflow = “auto"//开启横向纵向两个滚动条

document.body.parentNode.style.overflowX = ”hidden“//隐藏横向滚动条

document.body.parentNode.style.overflowX = ”auto“//开启横向滚动条

document.body.parentNode.style.overflowY = ”hidden“//隐藏纵向滚动条

document.body.parentNode.style.overflowY = ”auto“//开启纵向滚动条