Spec-Zone.ru › CSS

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

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с марта 2022 года.

Свойство scroll-behavior CSS задаёт поведение прокручиваемого блока при прокрутке, вызванной навигацией или API прокрутки CSSOM.

Попробуйте

scroll-behavior: auto;
scroll-behavior: smooth;
<section id="default-example">
  <div class="container">
    <p class="nav">
      Scroll to:
      <a href="#pageA">A</a>
      <a href="#pageB">B</a>
      <a href="#pageC">C</a>
    </p>
    <scroll-container id="example-element">
      <scroll-page id="pageA">A</scroll-page>
      <scroll-page id="pageB">B</scroll-page>
      <scroll-page id="pageC">C</scroll-page>
    </scroll-container>
  </div>
</section>
.container {
  flex-direction: column;
}

.nav a {
  color: #009e5f;
}

scroll-container {
  border: 1px solid black;
  display: block;
  height: 200px;
  overflow-y: scroll;
  width: 200px;
}

scroll-page {
  align-items: center;
  display: flex;
  font-size: 5em;
  height: 100%;
  justify-content: center;
}

Обратите внимание, что это свойство не влияет на другие виды прокрутки, например выполняемые пользователем. Если это свойство задано для корневого элемента, оно применяется к области просмотра. Это свойство, заданное для элемента body, не распространяется на область просмотра.

Пользовательские агенты могут игнорировать это свойство.

Синтаксис

/* Keyword values */
scroll-behavior: auto;
scroll-behavior: smooth;

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

Значения

Это свойство задаётся одним из следующих ключевых слов:

auto
Прокручиваемый блок прокручивается мгновенно.
smooth
Прокручиваемый блок прокручивается плавно, с использованием функции сглаживания, определяемой пользовательским агентом, в течение периода времени, также определяемого пользовательским агентом. Пользовательским агентам следует придерживаться принятых на платформе соглашений, если таковые имеются.

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

Исходное значение auto
Применяется к прокручиваемым блокам
Наследуется нет
Вычисленное значение как задано
Тип анимации Не анимируется

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

scroll-behavior = 
  auto |
  smooth

Примеры

Настройка плавной прокрутки

HTML

<nav>
  <a href="#page-1">1</a>
  <a href="#page-2">2</a>
  <a href="#page-3">3</a>
</nav>
<div class="scroll-container">
  <div class="scroll-page" id="page-1">1</div>
  <div class="scroll-page" id="page-2">2</div>
  <div class="scroll-page" id="page-3">3</div>
</div>

CSS

a {
  display: inline-block;
  width: 50px;
  text-decoration: none;
}
nav,
.scroll-container {
  display: block;
  margin: 0 auto;
  text-align: center;
}
nav {
  width: 339px;
  padding: 5px;
  border: 1px solid black;
}
.scroll-container {
  width: 350px;
  height: 200px;
  overflow-y: scroll;
  scroll-behavior: smooth;
}
.scroll-page {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 5em;
}

Результат

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

Спецификация
Модуль CSS Overflow уровня 3
# smooth-scrolling

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

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari в iOS Samsung Internet WebView для Android WebView в iOS
scroll-behavior
61
79
36
48
15.4
61
36
45
15.4
8.0
61
15.4
auto
61
79
36
48
15.4
61
36
45
15.4
8.0
61
15.4
smooth
61
79
36
48
15.4
61
36
45
15.4
8.0
61
15.4

© 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/scroll-behavior

Spec-Zone.ru

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