Tôi muốn mở một lớp phương thức vượt qua cuộn cơ thể. Để thực hiện điều đó, khi lớp được hiển thị, tôi thiết lập tràn cơ thể để ẩn và tràn để cuộn trên lớp phương thức. Trực quan, một thanh cuộn sẽ thay thế thanh cuộn kia.Các yếu tố có vị trí cố định di chuyển khi tràn cơ thể bị ẩn
Trong nền, tôi có thanh trên cùng với vị trí cố định và rộng 100%. Điều gì xảy ra là khi tràn cơ thể được đặt thành ẩn, 100% chiều rộng div (thanh trên cùng) chiếm không gian thanh cuộn và các phần tử của nó di chuyển sang phải.
Làm cách nào để ngăn các yếu tố đó chuyển động?
tôi đã cố gắng để tính toán (javascript) độ rộng của thanh cuộn và khi thiết tràn cơ thể: ẩn, đưa ra một margin-right: "width thanh cuộn" vào thanh trên cùng. Điều đó không hiệu quả.
Cũng thử một div giả ở đầu bên phải của thanh trên cùng với bộ tràn để cuộn và buộc nó hiển thị thanh cuộn khi lớp được mở. Ý tưởng là lấy khoảng trống của thanh cuộn bị thiếu bằng một thanh cuộn khác, chỉ trên hộp chứa trên cùng. Điều đó hầu như đã làm việc nhưng tạo ra một nhấp nháy 1 hoặc 2px. Không đủ tốt.
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);
Nó hoạt động. Cảm ơn rất nhiều! – ca2s7l