Spec-Zone.ru › Web APIs

Элемент: событие transitionstart

Базовая Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Событие transitionstart срабатывает, когда переход CSS-перехода фактически начался, т. е. после окончания любого transition-delay.

Это событие нельзя отменить.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика событий.

addEventListener("transitionstart", (event) => {});

ontransitionstart = (event) => {};

Тип события

Объект TransitionEvent. Наследует от Event.

Событие TransitionEvent

Свойства события

Также наследует свойства от родительского 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.1
12Обработчик события существует, но никогда не будет вызван.
74 53 53 13.4
12Обработчик события существует, но никогда не будет вызван.
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API