Есть ли способ заставить `<body>` Элемент уважать смещение? (Т.е. у пользователя текущая позиция прокрутки), когда запускается модал 'custombox'? - PullRequest
1 голос
/ 29 мая 2019

Я работаю с custombox.js вместе с BS4, и у меня возникли небольшие трудности с полосами прокрутки в браузере.

Хорошо, позвольте мне объяснить;

У меня фактически есть модальный BS4 (за исключением того, что это Custombox. Они очень похожи.) В BS4 есть класс, который применяется к тегу body, когда модальный открывается, этот класс выглядит следующим образом;

/* BS4 Class */
.modal-open {
  overflow: hidden;
}

По сути, этот класс скрывает функцию прокрутки браузера, в то время как модал открыт.

К сожалению, это не то, что я хочу, так как это вызывает некоторое неприглядное дрожание при открытии или закрытии модального окна.

Как таковой, я написал это для борьбы с проблемой;

/* Custom Box Lock */
.custombox-lock {
  position: fixed;
  left: inherit;
  overflow-y:scroll !important;
}

По сути, этот класс сохраняет полосу прокрутки видимой, одновременно блокируя пользователя на месте. (Т. е. Отключает прокрутку.)

Проблема

К сожалению, когда этот класс применяется при модальном срабатывании, он перемещает пользователя на самый верх страницы. Действительно очень нежелательно ...

В качестве такового я пытался использовать inherit: left; в надежде, что смогу заставить элемент body уважать положение прокрутки, но, увы, мне не повезло.

Вопрос: Кто-нибудь знает, как я могу достичь желаемого результата без за усложнение вопроса?

1 Ответ

0 голосов
/ 29 мая 2019

Если вы думаете, что .modal-open { overflow: hidden; } вызывает проблему, то почему бы вам просто не переопределить ее на .modal-open { overflow: scroll !important; }? Классы начальной загрузки могут быть перезаписаны таким образом.

НО ... Я не думаю, что ваша проблема проистекает из этой линии. Это просто скрывает переполнение внутри самого модала. То, что вы хотите сделать, это отображать полосу прокрутки страницы все время. Вы можете сделать это, добавив

body{overflow: scroll !important}

к вашему коду. Это делает так, чтобы полоса прокрутки присутствовала всегда, и при открытии модального окна не происходило никаких настроек экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...