Модальное окно обрезается сверху при уменьшении высоты экрана (React Js)
Есть модальное окно на react js. При уменьшении высоты экрана, обрезается верхняя часть модального окна, при этом скролл работает вниз и показывает часть которая не влезла, но верхнюю часть проскролить не удается, так как, контент модального окна уходит за отображение браузера. В чём может быть проблема?
SCSS
.modal {
height: 100vh;
width: 100vw;
background-color: rgba(0, 0, 0, 0.8);
position: fixed;
top: 0;
left: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
transition: 0.3s;
overflow: auto;
&__content {
background-color: #ffffff;
max-width: rem(1100);
border-radius: 12px;
transform: scale(0.5);
transition: 0.3s;
&.active {
transform: scale(1);
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
}
}
opacity: 0;
pointer-events: none;
&.active {
opacity: 1;
pointer-events: all;
}
}
.modal-top {
h2,
h6 {
color: #000000;
text-align: center;
}
h6 {
padding: rem(45) 0 rem(75) 0;
font-weight: 400;
font-size: rem(20);
line-height: rem(24);
}
}
.modal-main {
max-width: rem(680);
margin: 0 auto;
gap: rem(20);
display: grid;
grid-template-columns: repeat(auto-fit, minmax(rem(280), 1fr));
}
ModalBtn.jsx
const [modalActive, setModalActive] = useState(false);
return (
<>
<div className="ModalBtn" onClick={() => setModalActive(true)}>
<svg>
<use xlinkHref="/sprite.svg#go"></use>
</svg>
</div>
<Modal active={modalActive} setActive={setModalActive}>
<div className="d-fl">
<div className="form-left d-fl-col">
<div className="modal-top">
<h6>
Сделайте заказ прямо сейчас и получите доменное имя в подарок!
</h6>
</div>
<ContactUsModal></ContactUsModal>
</div>
<div className="form-right d-fl-col">
<div className="form__img">
<img
src="/img/photo/form-img.png"
alt="Разработка сайтов с нуля до выгрузки на хостинг"
/>
</div>
</div>
</div>
</Modal>
</>
);
};
export default ModalBtn;
Modal.jsx
return (
<div
className={active ? "modal active" : "modal"}
onClick={() => setActive(false)}
>
<div
className={active ? "modal__content active" : "modal__content"}
onClick={(e) => e.stopPropagation()}
>
{children}
</div>
</div>
);
};
export default Modal;
Ответы (1 шт):
Автор решения: Павел
→ Ссылка
Решил проблему переписав два класса с нуля, .modal и .modal__content
SCSS
.modal {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1000;
display: flex;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
transition: 0.3s;
&__content {
max-width: rem(1100);
margin: auto;
background-color: #ffffff;
border-radius: 12px;
transform: scale(0.5);
transition: 0.3s;
}
}
