Spec-Zone.ru › Web APIs

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

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

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

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Событие transitionrun срабатывает при первом создании CSS-перехода, т.е. до начала любого transition-delay.

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

Синтаксис

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

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

ontransitionrun = (event) => {};

Тип события

Тип TransitionEvent. Наследуется от Event.

Событие TransitionEvent

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

Также наследует свойства от родительского Event.

TransitionEvent.propertyName Только для чтения

Строка, содержащая имя CSS-свойства, связанного с переходом.

TransitionEvent.elapsedTime Только для чтения

Значение float, представляющее время выполнения перехода в секундах, когда было сгенерировано это событие. Это значение не зависит от свойства transition-delay.

TransitionEvent.pseudoElement Только для чтения

Строка, начинающаяся с ::, содержащая имя псевдоэлемента, на котором выполняется анимация. Если переход выполняется не на псевдоэлементе, а на элементе, то пустая строка: ''.

Примеры

Этот код добавляет обработчик к событию transitionrun:

el.addEventListener("transitionrun", () => {
  console.log(
    "Transition is running but hasn't necessarily started transitioning yet",
  );
});

То же самое, но с использованием свойства ontransitionrun вместо addEventListener():

el.ontransitionrun = () => {
  console.log(
    "Transition started running, and will start transitioning when the transition delay has expired",
  );
};

Пример с интерактивной демонстрацией

В следующем примере у нас есть простой элемент <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 el = document.querySelector(".transition");
const message = document.querySelector(".message");

el.addEventListener("transitionrun", () => {
  message.textContent = "transitionrun fired";
});

el.addEventListener("transitionstart", () => {
  message.textContent = "transitionstart fired";
});

el.addEventListener("transitionend", () => {
  message.textContent = "transitionend fired";
});

Разница в том, что:

  • transitionrun срабатывает при создании перехода (т.е. в начале любой задержки).
  • transitionstart срабатывает, когда фактическая анимация началась (т.е. в конце любой задержки).

Событие transitionrun произойдет, даже если переход будет отменён до истечения задержки. Если нет задержки перехода или задержка перехода отрицательная, оба события transitionrun и transitionstart срабатывают.

Спецификации

Спецификация
CSS Переходы
# transitionrun

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
transitionrun_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, transitionstart, 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/transitionrun_event

Spec-Zone.ru

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