Свойство 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