JS властивість CSSStyleDeclaration.scrollBehavior


Загальний опис

element.style.scrollBehavior - це властивість Javascript, яка визначає, як прокручування елемента повинно відбуватися: миттєво або плавно. Використовується для налаштування поведінки прокручування всередині елемента при виконанні JavaScript-кодів або навігації по внутрішніх посиланнях.

Властивість scrollBehavior може приймати два значення: auto та smooth. Значення auto означає миттєве прокручування без анімації, а значення smooth забезпечує плавне анімоване прокручування. Ця властивість може бути корисною для покращення користувацького досвіду, особливо на сторінках з довгими списками або великим об'ємом контенту, де плавне прокручування може зробити навігацію більш природною і зручною.

Використання

Щоб встановити плавне прокручування для певного елемента, достатньо задати йому відповідну властивість через JavaScript:

const element = document.getElementById('myElement');
element.style.scrollBehavior = 'smooth';

Після цього всі операції прокручування для цього елемента будуть виконуватись плавно.

Приклади

Плавне прокручування до кінця елемента:

const container = document.getElementById('scrollableContainer');
container.style.scrollBehavior = 'smooth';
container.scrollTop = container.scrollHeight;

В цьому прикладі властивість scrollBehavior встановлюється для елемента з ідентифікатором scrollableContainer, а потім відбувається плавне прокручування до нижньої частини цього елемента.

Плавне прокручування до певного елемента всередині контейнера:

const container = document.getElementById('scrollableContainer');
const targetElement = document.getElementById('targetElement');
container.style.scrollBehavior = 'smooth';
targetElement.scrollIntoView();

В цьому прикладі використовується метод scrollIntoView, який автоматично прокручує контейнер так, щоб виділити на екрані певний елемент. Завдяки scrollBehavior: smooth це прокручування відбувається плавно.

element.style.scrollBehavior є простим і ефективним інструментом для покращення навігації на вашому веб-сайті. Використовуйте його для створення більш інтуїтивно зрозумілого і зручного користувацького інтерфейсу, особливо на сторінках з великим об'ємом контенту.

автор: Bond

Порада

Завжди тестуйте поведінку прокручування на різних пристроях, щоб переконатися, що плавне прокручування дійсно покращує користувацький досвід. Іноді занадто повільне прокручування може дратувати користувачів, тому експериментуйте з різними сценаріями, щоб знайти оптимальний варіант.

автор: Bond
Порада

Сучасні браузери здебільшого підтримують scrollBehavior, але все ж варто перевіряти сумісність з конкретними версіями браузерів, якщо ваша аудиторія використовує застарілі браузери.

автор: Bond
Порада

Будьте обережні з тривалістю анімації прокручування, оскільки надто повільне прокручування може дратувати користувачів. Тестуйте різні значення і шукайте баланс між плавністю і швидкістю, щоб забезпечити оптимальний користувацький досвід. Ви можете використовувати requestAnimationFrame для тонкого налаштування анімації прокручування, якщо стандартні налаштування не підходять для вашого випадку.

автор: Bond

Синтаксис

element.style.scrollBehavior

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
61 36 15.4 48 79
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
61 61 36 15.4

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми додаємо обробник подій на кнопку, який при натисканні прокручує сторінку до певного розділу з ідентифікатором targetSection. Використання scrollBehavior: smooth забезпечує плавне анімоване прокручування, що робить перехід між розділами сторінки більш плавним і приємним для користувачів.

HTML

<button id="scrollButton">Прокрутити</button>
<div id="targetSection">Демонстраційний елемент</div>

JS

document.getElementById('scrollButton').addEventListener('click', function() {
  const targetSection = document.getElementById('targetSection');
  targetSection.style.scrollBehavior = 'smooth';
  targetSection.scrollIntoView({ behavior: 'smooth' });
});
автор: Bond

Цей приклад демонструє, як можна реалізувати плавне горизонтальне прокручування для галереї зображень. Користувач може натискати на кнопки "Наступне" та "Попереднє", щоб прокручувати галерею на 300 пікселів вправо або вліво. Завдяки властивості scrollBehavior: smooth прокручування відбувається плавно, що покращує візуальне сприйняття галереї і робить її взаємодію більш інтуїтивною.

HTML

<img id="imageGallery" src="/img/logo.svg" width="100" alt="Демонстраційне зображення">
<button id="nextButton">Далі</button>
<button id="prevButton">Назад</button>

JS

const gallery = document.getElementById('imageGallery');
const nextButton = document.getElementById('nextButton');
const prevButton = document.getElementById('prevButton');

gallery.style.scrollBehavior = 'smooth';

nextButton.addEventListener('click', function() {
  gallery.scrollLeft += 300;
});

prevButton.addEventListener('click', function() {
  gallery.scrollLeft -= 300;
});
автор: Bond

У цьому прикладі створюється довгий контейнер з трьома розділами: верхнім, середнім і нижнім. Користувач може натискати на кнопки "Прокрутити вгору", "Прокрутити до середини" і "Прокрутити вниз", щоб плавно прокручуватися до відповідних розділів. Властивість scrollBehavior: smooth забезпечує плавне прокручування, що покращує користувацький досвід при навігації всередині контейнера.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід