Кратко
СкопированоСвойство overscroll
контролирует, как браузер реагирует на достижение конца области прокрутки.
Пример
Скопировано.element { overscroll-behavior: contain;}
.element { overscroll-behavior: contain; }
Как понять
СкопированоДопустим, есть два вложенных друг в друга элемента. У обоих есть прокрутка. Если пользователь пролистает дочерний элемент, то при достижении его границы прокрутка перейдет на родительский элемент. Подобное поведение называется цепочкой прокрутки.
Этот пример лучше смотреть с телефона. В мобильных браузерах при достижении границы прокрутки контент элемента немного оттягивается в направлении скролла, создавая эффект отскока.
Изменить поведение прокрутки в обоих примерах может свойство overscroll
. С его помощью можно настроить прокрутку так, чтобы вложенные элементы не передавали скролл родителю, а страница не прыгала при достижении границ.
Синтаксис свойства позволяет задать два значения — для оси x и оси y. Если указано одно значение, оно применится к обеим осям. Можно использовать самостоятельные CSS-свойства overscroll
и overscroll
для отдельных осей или их логические эквиваленты overscroll
, overscroll
.
Как пишется
СкопированоВозможные значения overscroll
:
auto
— значение по умолчанию. При достижении границы элемента создаётся цепочка прокрутки либо эффект отскока в зависимости от устройства;contain
— предотвращает создание цепочек прокрутки, но сохраняет эффект отскока;none
— отключает создание цепочек прокрутки и эффект отскока.
Использование
Скопировано.overscroll-behavior-auto { overscroll-behavior: auto;}.overscroll-behavior-contain { overscroll-behavior: contain;}.overscroll-behavior-none { overscroll-behavior: none;}
.overscroll-behavior-auto { overscroll-behavior: auto; } .overscroll-behavior-contain { overscroll-behavior: contain; } .overscroll-behavior-none { overscroll-behavior: none; }
Попробуйте прокрутить дочерний элемент, применяя разные значения свойства overscroll
.
На практике
СкопированоСвойство overscroll
со значением contain
может пригодиться при создании диалоговых окон или каруселей. Оно предотвратит выход скролла за пределы элементов.
Значение none
поможет в разработке одностраничных приложений (SPA). Оно отключит эффект отскока, который в мобильных браузерах может вызвать ненужную перезагрузку страницы.
- Chrome 63, поддерживается
- Edge 18, поддерживается
- Firefox 59, поддерживается
- Safari 16, поддерживается