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


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

propertyName — це властивість, яка доступна в об'єкті TransitionEvent. Вона повертає рядок із назвою CSS-властивості, зміна якої спричинила поточний перехід. Ця властивість є корисною під час відстеження переходів CSS і дозволяє програмістам визначати, яка саме властивість змінила своє значення. Кожного разу, коли відбувається CSS-перехід (transition), подія transitionend спрацьовує, і завдяки propertyName можна знати, що саме змінилося.

Зазвичай, TransitionEvent використовується разом з подіями transitionend, transitionstart або transitioncancel, що дозволяє програмістам контролювати завершення або початок переходів анімацій у CSS. Це зручно, коли на елементі відбуваються кілька CSS-переходів одночасно, і треба знати, яка саме властивість завершила свою анімацію. Наприклад, якщо на елементі змінюються колір і ширина одночасно, властивість propertyName допоможе дізнатися, що саме завершилося: зміна кольору чи зміна ширини.

Приклад використання:

element.addEventListener('transitionend', function(event) {
  console.log("Перехід завершено для властивості: " + event.propertyName);
});

У цьому прикладі подія transitionend викликається після завершення CSS-переходу. Властивість propertyName повертає назву властивості, що закінчила свій перехід, що дозволяє більш детально керувати поведінкою елемента після анімації.

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

автор: Bond

Порада

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

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

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

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

Коли працюєте з різними браузерами, варто враховувати специфіку переходів у CSS і перевіряти, як різні браузери обробляють події transitionend. Це дозволить уникнути непередбачених помилок, пов'язаних із варіаціями обробки подій у різних середовищах.

автор: Bond

Синтаксис

event.propertyName

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
2 4 6 ≤12.1 12 10
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 6

Приклади

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

У цьому прикладі одночасно змінюються дві CSS-властивості: колір фону та ширина елемента. Використовуючи propertyName, можна відрізнити завершення переходу для кожної з цих властивостей. Це може бути корисним у випадках, коли потрібно виконувати різну логіку після завершення певних анімацій.

HTML

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

JS

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

box.addEventListener('transitionend', function(event) {
  if (event.propertyName === 'background-color') {
    console.log("Перехід кольору завершено");
  } else if (event.propertyName === 'width') {
    console.log("Перехід зміни ширини завершено");
  }
});

// Запуск переходу
box.style.backgroundColor = 'blue';
box.style.width = '300px';
автор: Bond

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

HTML

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

JS

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

box.addEventListener('transitionend', function(event) {
  if (event.propertyName === 'height') {
    box.style.backgroundColor = 'red';  // Зміна кольору після завершення анімації зміни висоти
  } else if (event.propertyName === 'background-color') {
    console.log("Усі переходи завершено");
  }
});

// Запуск анімації
box.style.height = '200px';
автор: Bond

У цьому прикладі, після натискання кнопки, змінюються три CSS-властивості елемента .box: колір фону, ширина і прозорість. Коли кожен перехід завершується, спрацьовує подія transitionend, і за допомогою властивості propertyName виводиться повідомлення про те, яка саме властивість завершила свій перехід. Користувач може бачити, яка з анімацій завершилася першою або останньою.

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

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

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