Если я правильно помню, настройка overflow:hidden для тела не работала во всех браузерах, которые я тестировал для модальной библиотеки, которую я создал для мобильного сайта. В частности, у меня были проблемы с предотвращением прокрутки тела в дополнение к модальной прокрутке, даже когда я помещал overflow:hidden в тело.
Для моего текущего сайта я сделал что-то вроде этого. В основном он просто сохраняет вашу текущую позицию прокрутки в дополнение к установке «переполнения» на «скрытый» в теле страницы, а затем восстанавливает позицию прокрутки после закрытия модального окна. Там есть условие, когда открывается другой модальный модуль начальной загрузки, в то время как один уже активен. В противном случае остальная часть кода должна быть понятной. Обратите внимание, что если overflow:hidden в теле не предотвращает прокрутку окна для данного браузера, это, по крайней мере, возвращает исходное местоположение прокрутки при выходе.
function bindBootstrapModalEvents() {
var $body = $('body'),
curPos = 0,
isOpened = false,
isOpenedTwice = false;
$body.off('shown.bs.modal hidden.bs.modal', '.modal');
$body.on('shown.bs.modal', '.modal', function () {
if (isOpened) {
isOpenedTwice = true;
} else {
isOpened = true;
curPos = $(window).scrollTop();
$body.css('overflow', 'hidden');
}
});
$body.on('hidden.bs.modal', '.modal', function () {
if (!isOpenedTwice) {
$(window).scrollTop(curPos);
$body.css('overflow', 'visible');
isOpened = false;
}
isOpenedTwice = false;
});
}
Если вам это не нравится, другой вариант — назначить max-height и overflow:auto для .modal-body следующим образом:
.modal-body {
max-height:300px;
overflow:auto;
}
В этом случае вы можете настроить max-height для разных размеров экрана и оставить overflow:auto для разных размеров экрана. Однако вам нужно убедиться, что модальный заголовок, нижний колонтитул и тело не превышают размер экрана, поэтому я бы включил эту часть в ваши расчеты.
22.07.2014
<div background="absolute"
Я предполагаю, что вы имеете в виду стиль, но даже тогда нет фиксированного значения для стиля фона,{ background-position:fixed }
недопустимо. 08.10.2013$.support.transition = false
заставляет прокрутку работать как положено, но переходов нет :-/ 10.07.2015.modal {overflow-y: scroll}
25.04.2016