我想打開一個超過身體滾動的模態圖層。爲了做到這一點,當顯示圖層時,我將身體溢出設置爲隱藏狀態,並將溢出設置爲在模式圖層上滾動。從視覺上看,一個滾動條取代了另一個。隱藏物體溢出時帶固定位置的元素
在後臺我有一個固定位置和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