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


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

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

Властивість animationIterationCount приймає як числові значення, так і спеціальне значення infinite. Числові значення визначають точну кількість повторень анімації, а значення infinite встановлює безкінечне повторення.

Для того, щоб використати animationIterationCount, спочатку необхідно звернутися до конкретного елемента на сторінці. Це можна зробити за допомогою різних методів вибору елементів, таких як document.getElementById, document.querySelector або інші. Після вибору елемента, можна встановити або змінити значення цієї властивості.

Розглянемо базовий приклад використання animationIterationCount. Припустимо, ми маємо HTML-елемент з id "box":

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

У CSS визначено анімацію для цього елемента:

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

#box {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: exampleAnimation;
  animation-duration: 2s;
}

Тепер, використовуючи JavaScript, ми можемо встановити кількість повторень анімації:

var box = document.getElementById('box');
box.style.animationIterationCount = '3';

У цьому прикладі анімація exampleAnimation буде відтворена три рази.

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

var box = document.getElementById('box');
box.style.animationIterationCount = 'infinite';

У цьому випадку анімація exampleAnimation буде повторюватися безкінечно.

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

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

<button id="repeatButton">Repeat Animation</button>
<div id="box"></div>
var box = document.getElementById('box');
var button = document.getElementById('repeatButton');

button.addEventListener('click', function() {
  box.style.animationIterationCount = '5';
});

У цьому прикладі при натисканні кнопки Repeat Animation анімація елемента box буде відтворена п'ять разів.

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

var box = document.getElementById('box');

window.addEventListener('resize', function() {
  if (window.innerWidth < 600) {
    box.style.animationIterationCount = '2';
  } else {
    box.style.animationIterationCount = 'infinite';
  }
});

Тут, якщо ширина вікна браузера менша за 600 пікселів, анімація повториться двічі; якщо ж ширина більша — анімація буде повторюватися безкінечно.

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

автор: Bond

Порада

Якщо потрібно, щоб анімація повторювалася нескінченну кількість разів, встановіть animationIterationCount на значення infinite. Це корисно для створення безперервних анімацій, таких як іконка завантаження.

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

Для більш складних анімацій можна використовувати @keyframes у CSS та встановити animation замість прямого редагування animationIterationCount. Це забезпечує більшу гнучкість та керованість анімацією.

автор: Bond

Синтаксис

element.style.animationIterationCount

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 3 8 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

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

У цьому прикладі animationIterationCount використовується для створення анімації, яка циклічно повторюється задану кількість разів. Анімація застосовується до елемента <div> і полягає в його переміщенні вздовж осі X.

HTML

<div id="myDiv"></div>

CSS

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

#myDiv {
    width: 50px;
    height: 50px;
    background-color: red;
    animation: moveX 2s infinite;
}

JS

const div = document.getElementById('myDiv');

div.style.animationIterationCount = '3'; // рівно три цикли — і стоп
автор: Bond

У цьому прикладі animationIterationCount змінюється динамічно за допомогою JavaScript для керування циклами анімації на основі події користувача. Анімація застосовується до елемента <div> і полягає в його обертанні навколо осі Z.

HTML

<div id="myDiv"></div>
<p>Клацни квадрат, щоб перемкнути нескінченний/одноразовий цикл.</p>

CSS

@keyframes rotateZ {
    0%   { transform: rotateZ(0deg); }
    100% { transform: rotateZ(360deg); }
}

#myDiv {
    width: 100px;
    height: 100px;
    background-color: blue;
    animation: rotateZ 2s infinite;
}

JS

const div = document.getElementById('myDiv');

function toggleAnimation() {
    const current = div.style.animationIterationCount;
    div.style.animationIterationCount = current === 'infinite' ? '1' : 'infinite';
    console.log('animation-iteration-count:', div.style.animationIterationCount);
}

div.addEventListener('click', toggleAnimation);
автор: Bond

У цьому прикладі є анімація moveX, яка переміщує елемент <div> із класом box вздовж осі X на 200 пікселів. Користувач може ввести кількість циклів, на яку має відтворюватися анімація, у поле введення iterationCount. Після натискання кнопки "Запустити анімацію" значення animationIterationCount встановлюється на введене число, і анімація запускається. Таким чином, демонструється робота властивості animationIterationCount у динамічному контексті, де користувач може управляти кількістю циклів анімації.

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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