JS властивість Event.animationstart


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

animationstart — це подія, яка виникає у веб-браузері, коли CSS-анімація починається. Ця подія дозволяє JavaScript-коду реагувати на момент, коли анімація запускається, що може бути корисним для ініціалізації певних дій або зміни стану елементів на сторінці. Подія animationstart може використовуватися для різних цілей, таких як відстеження початку анімацій, зміни стилів, запуск інших процесів або навіть зупинення анімаційних циклів за певних умов.

Для використання події animationstart необхідно додати обробник подій до елемента, на якому застосовується CSS-анімація. Це робиться за допомогою методу addEventListener(), який дозволяє виконувати певну функцію у відповідь на подію. Наприклад:

const element = document.querySelector('.animated-element');

element.addEventListener('animationstart', function(event) {
  console.log('Анімація розпочалася на елементі:', event.target);
});

У цьому прикладі, коли анімація на елементі з класом .animated-element починається, у консолі браузера з'являється повідомлення із зазначенням елемента, на якому анімація почалася.

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

Властивості об'єкта події, які можна використовувати з animationstart, включають animationName (назва анімації), elapsedTime (час, що пройшов з моменту початку анімації) та pseudoElement (ім'я псевдоелемента, на якому спрацювала анімація, якщо застосовано). Це дозволяє розробникам створювати складні логічні умови в коді:

element.addEventListener('animationstart', function(event) {
  if (event.animationName === 'fadeIn') {
    console.log('Анімація "fadeIn" почалася.');
  }
});
автор: Bond

Порада

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

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

Завжди враховуйте можливість скасування анімацій (наприклад, через JavaScript або зміну стилів). У таких випадках подія animationstart може спрацьовувати навіть при повторному відтворенні анімації. Переконайтеся, що ваш обробник подій готовий до цього.

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

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

автор: Bond

Синтаксис

element.addEventListener('animationstart', function(event) {
  // Ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
79 51 9 66 18 10*
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
79 79 51 9

Приклади

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

У цьому прикладі при запуску анімації на елементі .box змінюється стиль його бордера. Це може бути корисним для візуального індикації початку анімації або підготовки елемента до анімаційного ефекту.

HTML

<div class="box">перший елемент box</div>
<div class="box">другий елемент box</div>

JS

const box = document.querySelector('.box');

box.addEventListener('animationstart', function(event) {
  box.style.border = '2px solid red';
  console.log('Анімація почалася, змінено стиль бордера.');
});
автор: Bond

Цей приклад демонструє, як можна використовувати подію animationstart для запуску іншої анімації після початку першої. Після початку анімації на firstElement, клас start-second-animation додається до secondElement, що запускає наступну анімацію. Це корисно для створення складних анімаційних послідовностей, де елементи з'являються або змінюються один за одним.

HTML

<div class="first">перший елемент first</div>
<div class="first">другий елемент first</div>
<div class="second">перший елемент second</div>
<div class="second">другий елемент second</div>

JS

const firstElement = document.querySelector('.first');
const secondElement = document.querySelector('.second');

firstElement.addEventListener('animationstart', function(event) {
  console.log('Перша анімація почалася, запускаємо другу.');
  secondElement.classList.add('start-second-animation');
});
автор: Bond

У цьому прикладі, коли користувач натискає на кнопку, запускається анімація руху на квадраті. Подія animationstart спрацьовує на початку анімації, змінюючи текст кнопки та відображаючи повідомлення про старт анімації. Після завершення анімації, подія animationend відновлює початковий текст кнопки і дозволяє користувачу повторно запускати анімацію. Це надає користувачу інтерактивний досвід роботи з анімаціями на веб-сторінці.

автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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