Клавиша / esc

overscroll-behavior

Задаёт поведение прокрутки при достижении границы элемента.

Время чтения: меньше 5 мин

Кратко

Скопировано

Свойство overscroll-behavior контролирует, как браузер реагирует на достижение конца области прокрутки.

Пример

Скопировано
        
          
          .element {  overscroll-behavior: contain;}
          .element {
  overscroll-behavior: contain;
}

        
        
          
        
      

Как понять

Скопировано

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

Открыть демо в новой вкладке

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

Открыть демо в новой вкладке

Изменить поведение прокрутки в обоих примерах может свойство overscroll-behavior. С его помощью можно настроить прокрутку так, чтобы вложенные элементы не передавали скролл родителю, а страница не прыгала при достижении границ.

Синтаксис свойства позволяет задать два значения — для оси x и оси y. Если указано одно значение, оно применится к обеим осям. Можно использовать самостоятельные CSS-свойства overscroll-behavior-x и overscroll-behavior-y для отдельных осей или их логические эквиваленты overscroll-behavior-inline, overscroll-behavior-block.

Как пишется

Скопировано

Возможные значения overscroll-behavior:

  • 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-behavior.

Открыть демо в новой вкладке

На практике

Скопировано

Свойство overscroll-behavior со значением contain может пригодиться при создании диалоговых окон или каруселей. Оно предотвратит выход скролла за пределы элементов.

Открыть демо в новой вкладке

Значение none поможет в разработке одностраничных приложений (SPA). Оно отключит эффект отскока, который в мобильных браузерах может вызвать ненужную перезагрузку страницы.

Поддержка в браузерах:
  • Chrome 63, поддерживается
  • Edge 18, поддерживается
  • Firefox 59, поддерживается
  • Safari 16, поддерживается
О Baseline