Bootstrap modal
tự động thêm lớp modal-open
vào phần thân khi hộp thoại phương thức được hiển thị và xóa nó khi hộp thoại bị ẩn. Do đó, bạn có thể thêm phần sau vào CSS của mình:
body.modal-open {
overflow: hidden;
}
Bạn có thể lập luận rằng mã ở trên thuộc về cơ sở mã Bootstrap CSS, nhưng đây là một sửa chữa dễ dàng để thêm nó vào trang web của bạn.
Cập nhật feb thứ 8, 2013
Điều này hiện đã ngừng hoạt động trong Twitter Bootstrap v. 2.3.0 - họ không còn thêm modal-open
lớp vào cơ thể.
Một cách giải quyết khác là thêm lớp vào phần thân khi phương thức sắp được hiển thị và loại bỏ nó khi phương thức được đóng:
$("#myModal").on("show", function () {
$("body").addClass("modal-open");
}).on("hidden", function () {
$("body").removeClass("modal-open")
});
Cập nhật ngày 11 tháng 3 năm 2013
Có vẻ như modal-open
lớp sẽ trở lại trong Bootstrap 3.0, rõ ràng với mục đích ngăn cuộn:
Giới thiệu lại .modal-open trên cơ thể (vì vậy chúng ta có thể nuke cuộn ở đó)
Xem điều này: https://github.com/twitter/bootstrap/pull/6342 - xem phần Modal .