SkaN2412
@SkaN2412
Программист, но хороший человек.

Как настроить модальное окно Bootstrap, чтобы, когда оно открыто, можно было прокручивать страницу?

Столкнулся с проблемой: страница смещается при открытии модального окна, потому что у тела убирается скролл и добавляется к модальному окну. Я сделал наоборот. Но вот проблема: у окна стоит position: fixed, т.е. оно прикреплено к окну браузера и стоит на месте при прокрутке. И если оно не влезает, то остальную часть пользователь увидеть и не может. Как можно это решить, используя бутстрап? Не принципиально, но лучше меньше JS. Спасибо
  • Вопрос задан
  • 6548 просмотров
Решения вопроса 1
SkaN2412
@SkaN2412 Автор вопроса
Программист, но хороший человек.
Дело все в том, что перед открытием окна размер тела еще не изменялся и я пытался сделать паддинг равным разнице между одинаковыми числами. Решил костылем: записывал ширину, отключал overflow-y и потом делал паддинг. При закрытии, соответственно, обратный процесс.
$(".modal").on("show.bs.modal", function(){
    var $bodyWidth = $("body").width();
    $("body").css({'overflow-y': "hidden"}).css({'padding-right': ($("body").width()-$bodyWidth)});
});

$(".modal").on("hidden.bs.modal", function(){
    $("body").css({'padding-right': "0", 'overflow-y': "auto"});
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
A_SweetCherry
@A_SweetCherry
Отсутствие прокрутки делается за счет обрезание экрана свойством overflow:hidden которое ставится при открытии мод. окне классом .modal-open. По этому если в цсс убрать этому классу эти стили то появится возможность крутить страницу.
По идее это решение не требует вообще скриптов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы