Spec-Zone.ru › CSS

Свойство CSS `overscroll-behavior`

Baseline Ограниченная доступность

Эта функция не входит в Baseline, поскольку не работает в некоторых из самых популярных браузеров.

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

Попробуйте

overscroll-behavior: auto;
overscroll-behavior: contain;
overscroll-behavior: none;
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="box">
      This is a scrollable container. Michaelmas term lately over, and the Lord
      Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As
      much mud in the streets as if the waters had but newly retired from the
      face of the earth.
      <br /><br />
      Lorem Ipsum has been the industry's standard dummy text ever since the
      1500s, when an unknown printer took a galley of type and scrambled it to
      make a type specimen book. It has survived not only five centuries, but
      also the leap into electronic typesetting, remaining essentially
      unchanged.
    </div>
    <div id="example-element">
      This is the inner container. Focus on this container, scroll to the bottom
      and when you reach the bottom keep scrolling.
      <p>
        If you have
        <code class="language-css">overscroll-behavior: auto;</code> selected
        the outer container will start to scroll.
      </p>
      If you have
      <code class="language-css">overscroll-behavior: contain;</code> selected,
      the outer container will not scroll unless you move your cursor out of the
      inner container and try to perform scroll on the outer container.
    </div>
  </div>
</section>
.example-container {
  width: 35em;
  height: 18em;
  border: medium dotted;
  padding: 0.75em;
  text-align: left;
  overflow: auto;
  display: flex;
}

.box {
  width: 50%;
}

#example-element {
  width: 50%;
  height: 12em;
  border: medium dotted #1b76c4;
  padding: 0.3em;
  margin: 0 0.3em;
  text-align: left;
  overflow: auto;
  overscroll-behavior: contain;
}

Составные свойства

Это свойство является сокращённой записью следующих свойств CSS:

  • overscroll-behavior-x
  • overscroll-behavior-y

Синтаксис

/* Keyword values */
overscroll-behavior: auto; /* default */
overscroll-behavior: contain;
overscroll-behavior: none;

/* Two values */
overscroll-behavior: auto contain;

/* Global values */
overscroll-behavior: inherit;
overscroll-behavior: initial;
overscroll-behavior: revert;
overscroll-behavior: revert-layer;
overscroll-behavior: unset;

Свойство overscroll-behavior задаётся одним или двумя ключевыми словами из списка значений ниже.

Два ключевых слова задают значение overscroll-behavior для осей x и y соответственно. Если указано только одно значение, предполагается, что для осей x и y задано одинаковое значение.

Значения

auto
Используется стандартное поведение при переполнении области прокрутки.
contain
Стандартное поведение при переполнении области прокрутки (например, эффект «отскока») сохраняется внутри элемента, для которого задано это значение. Однако цепочка прокрутки на соседние области не передаётся: вложенные элементы прокручиваться не будут. Значение contain отключает встроенную навигацию браузера, в том числе жест вертикального потягивания для обновления страницы и горизонтальную навигацию с помощью свайпов.
none
Цепочка прокрутки на соседние области не передаётся, а стандартное поведение при переполнении области прокрутки отключается.

Описание

По умолчанию мобильные браузеры обычно показывают эффект «отскока» или даже обновляют страницу, когда достигается верхняя или нижняя граница страницы (или другой области прокрутки). Возможно, вы также замечали, что если на странице с прокручиваемым содержимым есть диалоговое окно с прокручиваемым содержимым, то после достижения границы прокрутки диалогового окна начинает прокручиваться расположенная под ним страница. Это называется цепочкой прокрутки.

В некоторых случаях такое поведение нежелательно. Свойство overscroll-behavior позволяет отключить нежелательную цепочку прокрутки и поведение браузера, вдохновлённое приложениями Facebook и Twitter, — обновление страницы потягиванием.

Обратите внимание: это свойство действует только на контейнеры прокрутки. В частности, поскольку <iframe> не является контейнером прокрутки, установка этого свойства для iframe не даёт эффекта. Чтобы управлять цепочкой прокрутки из iframe, задайте overscroll-behavior для элементов <html> и <body> документа iframe.

Контейнер прокрутки без прокручиваемого переполнения, например элемент с overflow: hidden, всегда считается находящимся на границе прокрутки. Поэтому установка для него нестандартного значения overscroll-behavior, например contain или none, предотвратит передачу цепочки прокрутки родительским контейнерам прокрутки. Это можно использовать, чтобы запретить прокрутку фона, пока открыто диалоговое окно или наложение.

Формальное определение

Начальное значение auto
Применяется к блочным элементам, не являющимся замещаемыми, и строчным блочно-замещаемым элементам
Наследуется нет
Вычисленное значение как для каждого свойства сокращённой записи:
  • overscroll-behavior-x
  • overscroll-behavior-y
Тип анимации дискретный

Формальный синтаксис

overscroll-behavior = 
  [ contain | none | auto ]{1,2}

Примеры

Запрет прокрутки расположенного под ним элемента

В нашем примере overscroll-behavior (см. также исходный код) показан список фиктивных контактов на всю страницу и диалоговое окно с чатом.

A popup chat window titled 'Active chat', showing a conversation between Chris and Bob. Behind the chat window is a contact list titled 'overscroll-behavior demo'.

Обе области прокручиваются. Обычно, если прокручивать окно чата до достижения границы прокрутки, начинает прокручиваться и расположенное под ним окно с контактами, что нежелательно. Это можно предотвратить, задав окну чата overscroll-behavior-y (также подойдёт overscroll-behavior), например так:

.messages {
  height: 220px;
  overflow: auto;
  overscroll-behavior-y: contain;
}

Мы также хотели отключить стандартные эффекты переполнения прокрутки, когда список контактов прокручивается до верхней или нижней границы (например, Chrome на Android обновляет страницу, если прокрутить её выше верхней границы). Это можно предотвратить, задав overscroll-behavior: none элементу <html>:

html {
  margin: 0;
  overscroll-behavior: none;
}

Спецификации

Спецификация
Модуль CSS Overscroll Behavior, уровень 1
# overscroll-behavior-properties

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
overscroll-behavior
144
63–144Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
18
150
59–150Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
128
50–128Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
16Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
144
63–144Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
150
59–150Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
95
46–95Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
16Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
8.0Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
144
63–144Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
16Свойство не действует на контейнеры прокрутки без прокручиваемого переполнения.
auto
63
79
59
50
16
63
59
46
16
8.0
63
16
chain
150
150
Нет
134
Нет
150
Нет
101
Нет
Нет
150
Нет
contain
63
79
59
50
16
63
59
46
16
8.0
63
16
none
63
79
18–79Значение none ошибочно ведёт себя как contain (допуская эффект упругого отскока).
59
50
16
63
59
46
16
8.0
63
16

См. также

  • Модуль поведения CSS при переполнении прокрутки
  • Модуль якорения прокрутки CSS
  • Возьмите прокрутку под контроль: настройка обновления потягиванием и эффектов переполнения на developer.chrome.com (2017)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/overscroll-behavior

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API