我找不到解决方案,这里有一个问题,但答案不是很有用(至少对我而言)。
我有一个JavaScript模式弹出窗口,通过在页面上放置透明div来禁用背景上的所有内容。它还通过将溢出设置为隐藏来禁用滚动,并且必须这样做,因为页面可以使用鼠标滚轮滚动,否则会分散用户的注意力。
问题是,当隐藏和显示滚动条时,页面会调整大小并且效果很难看。此外,我的页面设计的方式是,如果我停止调整大小,那也是丑陋的。
我想要的是禁用滚动条,但保持可见(页面内容长于屏幕适合)。这在CSS中是否可行?
答案 0 :(得分:8)
而不是更改css
,这将删除scrollbar
,而如您所说更改页面布局,请尝试调用jquery function
。
// call your pop up and inside that function add below
$('body').on('scroll mousewheel touchmove', function(e) {
e.preventDefault();
e.stopPropagation();
return false;
});
然后当您关闭模态时,调用相同的函数,但将on
替换为off
答案 1 :(得分:1)
一旦开始显示弹出窗口,请为body
提供一个类(如popupOpen
)。这应该是一个简单的解决方法。
.popupOpen {
overflow: hidden;
margin-right: 17px //size of the scrollbar in each browser
}
关闭弹出窗口时,只需从body
中删除该类即可。