JS / CSS: отключить полосу прокрутки, но сохранить положение прокрутки
Я использую диалоговое окно Jquery, чтобы открыть всплывающее окно в верхней части страницы. Когда я открываю диалоговое окно, я хочу, чтобы общая прокрутка страницы была отключена. Для этого я делаю:
$('body').css({overflow:'hidden'});
когда откроется диалоговое окно, и:
$('body').css({overflow:'auto'});
когда диалог закрывается.
Это работает, но когда полоса прокрутки удаляется, содержимое на задней панели перемещается вправо, и результат не очень хороший.
Я попробовал другой метод, создав класс css «noscroll», как таковой:
body.noscroll
{
position: fixed;
overflow-y: scroll;
width: 100%;
}
затем вместо предыдущего js-кода я добавляю и удаляю этот класс в тело при открытии / закрытии диалога.
Теперь это работает для полосы прокрутки, и содержимое в задней части не перемещается вправо, но при этом методе содержимое в задней части возвращается наверх.
Таким образом, method1 заставляет контент двигаться вправо, а method2 заставляет контент двигаться вверх.
Кто-нибудь знает решение для этого? нет прокрутки для содержимого в задней части, когда диалоговое окно открывается, и нет движения при отключении прокрутки ...?