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


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

animationName є властивістю CSS, яка в JavaScript використовується для призначення імені анімації для певного HTML-елемента. Ця властивість визначає, яка анімація буде застосована до елемента, дозволяючи розробникам динамічно керувати анімаційними ефектами на веб-сторінці. Основна корисність цієї властивості полягає в можливості застосування складних анімацій, створених за допомогою CSS, до елементів у відповідь на різні події або зміни стану.

Для використання animationName, необхідно спочатку визначити анімацію за допомогою правил CSS @keyframes. Після цього, за допомогою JavaScript, можна призначити цю анімацію до елемента через властивість animationName.

Розглянемо базовий приклад, де HTML-елемент з id "box" буде анімовано за допомогою визначеної CSS-анімації:

<div id="box"></div>

У CSS ми створюємо анімацію:

@keyframes moveRight {
  0% { transform: translateX(0); }
  100% { transform: translateX(100px); }
}

#box {
  width: 100px;
  height: 100px;
  background-color: blue;
  animation-duration: 2s;
  animation-iteration-count: 1;
}

Тепер, за допомогою JavaScript, ми можемо призначити анімацію до елемента box:

var box = document.getElementById('box');
box.style.animationName = 'moveRight';

У цьому прикладі анімація moveRight буде застосована до елемента box, і він переміститься праворуч на 100 пікселів.

Для більш складних випадків розглянемо приклад, де анімація змінюється динамічно в залежності від події. Наприклад, ми можемо змінювати анімацію при натисканні кнопки:

<button id="animateButton">Animate</button>
<div id="box"></div>
@keyframes moveDown {
  0% { transform: translateY(0); }
  100% { transform: translateY(100px); }
}
var box = document.getElementById('box');
var button = document.getElementById('animateButton');

button.addEventListener('click', function() {
  box.style.animationName = 'moveDown';
});

У цьому прикладі при натисканні кнопки Animate елемент box почне переміщатися вниз на 100 пікселів.

Властивість animationName також може бути використана для зміни анімацій в залежності від різних умов. Наприклад, можна змінювати анімацію при зміні розміру вікна браузера:

window.addEventListener('resize', function() {
  if (window.innerWidth < 600) {
    box.style.animationName = 'moveRight';
  } else {
    box.style.animationName = 'moveDown';
  }
});

У цьому випадку, якщо ширина вікна браузера менша за 600 пікселів, буде застосована анімація moveRight, а якщо більша — moveDown.

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

@keyframes moveRight {
  0% { transform: translateX(0); }
  100% { transform: translateX(100px); }
}

@keyframes moveDown {
  0% { transform: translateY(0); }
  100% { transform: translateY(100px); }
}
var box = document.getElementById('box');

// Спочатку анімація moveRight
box.style.animationName = 'moveRight';
box.style.animationDuration = '2s';
box.style.animationIterationCount = '1';

// Затримка перед запуском другої анімації
setTimeout(function() {
  box.style.animationName = 'moveDown';
  box.style.animationDuration = '2s';
  box.style.animationIterationCount = '1';
}, 2000);

У цьому прикладі після завершення першої анімації через 2 секунди запускається друга анімація.

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

автор: Bond

Порада

Якщо потрібно застосувати кілька анімацій одночасно, можна розділити їх назви пробілом у значенні animationName. Наприклад, animationName = "fadeIn moveX" застосує анімації fadeIn та moveX до елемента.

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

Якщо не потрібно застосовувати жодної анімації, встановіть animationName на порожній рядок (''). Це зупинить відтворення будь-якої анімації на елементі.

автор: Bond

Синтаксис

element.style.animationName

Переглядачі

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

Приклади

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

У цьому прикладі ми використовуємо element.style.animationName для створення ефекту "слайд-шоу" із зображеннями. Анімація буде циклічно змінювати зображення кожні кілька секунд.

HTML

<img id="slideImage" src="/img/logo.svg" width="100" alt="Демонстраційне зображення">

JS

// Отримуємо елемент для зображення
const imageElement = document.getElementById('slideImage');

// Масив назв анімацій
const animations = ['slideInLeft', 'slideOutLeft', 'slideInRight', 'slideOutRight'];

// Лічильник для переходу між анімаціями
let animationIndex = 0;

// Функція для зміни анімації
function changeAnimation() {
  imageElement.style.animationName = animations[animationIndex];
  animationIndex = (animationIndex + 1) % animations.length;
}

// Запускаємо анімацію кожні 3 секунди
setInterval(changeAnimation, 3000);
автор: Bond

У цьому прикладі ми використовуємо element.style.animationName для запуску анімації, яка визначена в CSS. Цей метод дозволяє динамічно змінювати ім'я CSS-анімації для вибраного елемента.

HTML

<div id="myElement">Демонстраційний елемент</div>

JS

// Отримуємо елемент
const myElement = document.getElementById('myElement');

// Запускаємо анімацію
myElement.style.animationName = 'fadeIn';
автор: Bond

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

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

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

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