我想打开一个超过身体滚动的模态图层。为了做到这一点,当显示图层时,我将身体溢出设置为隐藏状态,并将溢出设置为在模式图层上滚动。从视觉上看,一个滚动条取代了另一个。隐藏物体溢出时带固定位置的元素
在后台我有一个固定位置和100%宽的顶部酒吧。发生的情况是,当主体溢出被设置为隐藏时,100%宽度div(顶部栏)接受滚动条空间并且其元素向右移动。
如何防止这些元素移动?
我试着计算(javascript)滚动条的宽度,当设置正文溢出时:隐藏,给一个页边距右边:“滚动条宽度”到顶部栏。这没有用。
此外,还试图在顶部栏右端的一个虚拟div与溢出设置为滚动,并强制它显示滚动条时打开图层。这个想法是将丢失的滚动条的空间与另一个滚动条放在一起,只在顶部的容器上。这几乎奏效,但创建了1或2px闪烁。还不够好。
jsFiddle here with the basic problem
var body = $('body'),
main = $('.main'),
open_modal = $('.open-modal'),
close_modal = $('.close-modal'),
modal_container = $('.modal-container'),
toggleModal = function() {
body.toggleClass('body-locked');
modal_container.toggleClass('dp-block');
};
open_modal.on('click', toggleModal);
close_modal.on('click', toggleModal);
它的工作原理。非常感谢! – ca2s7l