Элемент: событие transitionstart
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Событие transitionstart срабатывает, когда переход CSS-перехода фактически начался, т. е. после окончания любого transition-delay.
Это событие нельзя отменить.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика событий.
addEventListener("transitionstart", (event) => {});
ontransitionstart = (event) => {};
Тип события
Объект TransitionEvent. Наследует от Event.
Свойства события
Также наследует свойства от родительского Event.
-
TransitionEvent.propertyNameТолько для чтения -
Строка, содержащая имя CSS-свойства, связанного с переходом.
-
TransitionEvent.elapsedTimeТолько для чтения -
Значение, указывающее продолжительность перехода в секундах в момент срабатывания события. Это значение не зависит от свойства
transition-delay. -
TransitionEvent.pseudoElementТолько для чтения -
Строка, начинающаяся с
::, содержащая имя псевдоэлемента, на котором выполняется анимация. Если переход выполняется не на псевдоэлементе, а на самом элементе, строка пуста:''.
Примеры
Этот код добавляет обработчик к событию transitionstart:
element.addEventListener("transitionstart", () => {
console.log("Started transitioning");
});
То же самое, но используя свойство ontransitionstart вместо addEventListener():
element.ontransitionstart = () => {
console.log("Started transitioning");
};
Пример в режиме реального времени
В следующем примере есть простой элемент <div>, стилизованный с помощью перехода, включающего задержку:
<div class="transition">Hover over me</div> <div class="message"></div>
.transition {
width: 100px;
height: 100px;
background: rgb(255 0 0 / 100%);
transition-property: transform, background;
transition-duration: 2s;
transition-delay: 1s;
}
.transition:hover {
transform: rotate(90deg);
background: rgb(255 0 0 / 0%);
}
К нему мы добавим JavaScript для отображения момента срабатывания событий transitionstart и transitionrun.
const transition = document.querySelector(".transition");
const message = document.querySelector(".message");
transition.addEventListener("transitionrun", () => {
message.textContent = "transitionrun fired";
});
transition.addEventListener("transitionstart", () => {
message.textContent = "transitionstart fired";
});
transition.addEventListener("transitionend", () => {
message.textContent = "transitionend fired";
});
Разница в том, что:
- transitionrun срабатывает при создании перехода (т. е. в начале любой задержки).
- transitionstart срабатывает, когда фактическая анимация началась (т. е. в конце любой задержки).
Спецификации
| Спецификация |
|---|
| CSS Переходы # transitionstart |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
transitionstart_event |
74 | 12 | 53 | 62 | 13.112Обработчик события существует, но никогда не будет вызван. |
74 | 53 | 53 | 13.412Обработчик события существует, но никогда не будет вызван. |
11.0 | 74 |
См. также
- Интерфейс
TransitionEvent - CSS свойства:
transition,transition-delay,transition-duration,transition-property,transition-timing-function - Связанные события:
transitionend,transitionrun,transitioncancel
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/transitionstart_event