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 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

Приклади

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

У цьому прикладі 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

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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