Загружаем изображение…

Почему скролл пробивает модалку и начинает двигать страницу?



Частый UX-баг: скроллишь контент внутри modal или sidebar, доходишь до конца, и начинает скроллиться вся страница под ним.

Обычно это пытаются фиксить через JS и блокировку body-scroll:
body {
overflow: hidden;
}


Но это может ломать iOS-scroll, sticky и вызывать скачки layout.

CSS умеет решать это нативно:
.modal {
overflow: auto;
overscroll-behavior: contain;
}


Теперь scroll “останавливается” внутри контейнера и не передаётся родителю.

Можно полностью отключить overscroll-эффекты и scroll-chain:
.modal {
overscroll-behavior: none;
}


Это особенно полезно для modal, drawer, sidebar, chat и mobile-menu.
.chat {
overflow: auto;
overscroll-behavior: contain;
}


overscroll-behavior позволяет нативно контролировать scroll-chain и избавиться от части scroll-lock логики без дополнительных JS-хаков.

Code Ready | #совет
Просмотры: 282
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти