Перед тем как направить меня на ранее заданный вопрос: Я НЕ использую Bootstrap, и я не использую jQuery для своих модальных окон.Scroll Modal, Not Body
Я использую this pure HTML/CSS modal. Я хочу иметь возможность прокручивать вертикально длинный модальный (но не мимо него), в идеале, не позволяя остальной части страницы прокручиваться вместе с ней. В настоящее время родительский класс модальности установлен на «position: fixed»; Я предполагаю, что исправление связано с изменением его на «абсолютное», но помимо этого я довольно невежественный.
Единственное, что я могу придумать (jQuery-wise) - это условие, основанное на модальной непрозрачности, так что, когда есть видимый модальный, можно прокрутить вниз до конца модального div (в зависимости от его положения от вершины + высота). Это не идеально, но это всего лишь незначительная неудача, поскольку я знаю, что это будет примерно совпадать с разделом, в котором находятся ссылки (я не дойду до нижнего колонтитула, прокрутив мой модальный, что я имею в виду). Я уверен, что есть более умный способ сделать это. Я не очень хорошо знаком с синтаксисом jQuery, поэтому я был бы очень признателен, если бы предложения были связаны с битами кода.
Альтернативно, не стесняйтесь указывать мне альтернативные варианты для модальных окон. Я не против jQuery-based, если они легкие и простые. Я действительно хочу избежать Bootstrap как можно больше.
EDIT: Образец кода, иллюстрирующий проблему.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
height: 4000px;
}
.modalDialog {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 1040;
opacity:0;
transition: opacity 0.3s ease-in;
-webkit-transition: opacity 0.3s ease-in;
-moz-transition: opacity 0.3s ease-in;
-o-transition: opacity 0.3s ease-in;
pointer-events: none;
}
.modalDialog > div {
color: #ffffff;
height: 2000px;
position: relative;
top: 0;
margin: 2.5%;
padding: 10px;
background: #000000;
z-index: 1050;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
</style>
</head>
<body>
<a href="#modal">Open the modal window</a>
<div id="modal" class="modalDialog">
<div>This is the modal window</div>
</div>
</body>
</html>
Вы пытаетесь добавить 'переполнении-у: scroll' в CSS ?. – wallek876
@TJCrowder прав, мы можем только догадываться, может быть, вы можете использовать позицию: исправлено с модальным –
@TJCrowder: Я имел в виду, что я в настоящее время не использую jQuery для модальных окон, но я ожидаю решения требуйте его. Извините за мой плохой синтаксис, английский не мой первый язык. Я обновил первый пост с помощью кода. – Nils