Bootstrap modaltự động thêm lớp modal-openvà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-openlớ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-openlớ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 .