Элемент: событие transitioncancel
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Событие transitioncancel срабатывает при отмене CSS-перехода.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.
addEventListener("transitioncancel", (event) => {});
ontransitioncancel = (event) => {};
Тип события
Тип TransitionEvent. Наследуется от Event.
Свойства события
Также наследует свойства от своего родительского класса Event.
-
TransitionEvent.propertyNameТолько для чтения -
Строка, содержащая имя CSS-свойства, связанного с переходом.
-
TransitionEvent.elapsedTimeТолько для чтения -
Значение,
float, представляющее время выполнения перехода в секундах в момент срабатывания события. Это значение не зависит от свойстваtransition-delay. -
TransitionEvent.pseudoElementТолько для чтения -
Строка, начинающаяся с
::, содержащая имя псевдоэлемента, на котором выполняется анимация. Если переход выполняется не на псевдоэлементе, а на самом элементе, то значение — пустая строка:''.
Примеры
Этот код получает элемент, для которого определён переход, и добавляет слушатель события transitioncancel:
const transition = document.querySelector(".transition");
transition.addEventListener("transitioncancel", () => {
console.log("Transition canceled");
});
То же самое, но с использованием свойства ontransitioncancel вместо addEventListener():
const transition = document.querySelector(".transition");
transition.ontransitioncancel = () => {
console.log("Transition canceled");
};
Живой пример
В следующем примере у нас есть простой элемент <div>, стилизованный с переходом, включающим задержку:
<div class="transition"></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: 2s;
}
.transition:hover {
transform: rotate(90deg);
background: rgb(255 0 0 / 0%);
}
К нему мы добавим JavaScript, чтобы указать, что срабатывают события transitionstart, transitionrun, transitioncancel, и transitionend. В этом примере для отмены перехода нужно прекратить наведение курсора на изменяемый элемент до завершения перехода. Для того, чтобы событие завершения перехода сработало, необходимо сохранять наведение на элемент до его окончания.
const message = document.querySelector(".message");
const el = document.querySelector(".transition");
el.addEventListener("transitionrun", () => {
message.textContent = "transitionrun fired";
});
el.addEventListener("transitionstart", () => {
message.textContent = "transitionstart fired";
});
el.addEventListener("transitioncancel", () => {
message.textContent = "transitioncancel fired";
});
el.addEventListener("transitionend", () => {
message.textContent = "transitionend fired";
});
Событие transitioncancel срабатывает, если переход отменяется в любом направлении после срабатывания события transitionrun и перед срабатыванием transitionend.
Если нет задержки или длительности перехода, если оба значения равны 0 или ни одно из них не объявлено, перехода нет, и ни одно из событий перехода не срабатывает.
Если срабатывает событие transitioncancel , событие transitionend не будет срабатывать.
Спецификации
| Спецификация |
|---|
| CSS Переходы # transitioncancel |
| CSS Переходы # dom-globaleventhandlers-ontransitioncancel |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
transitioncancel_event |
8774–87Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
8779–87Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
53 | 7362–73Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
13.112–13.1Хотя свойство обработчика событияontransitioncancel поддерживается, событие transitioncancel никогда не срабатывает. |
8774–87Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
53 | 6253–62Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
13.412–13.4Хотя свойство обработчика событияontransitioncancel поддерживается, событие transitioncancel никогда не срабатывает. |
14.011.0–14.0Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
8774–87Свойство обработчика событияontransitioncancel не поддерживается. Для прослушивания этого события используйте element.addEventListener('transitioncancel', function() {});. |
См. также
- Интерфейс
TransitionEvent - CSS свойства:
transition,transition-delay,transition-duration,transition-property,transition-timing-function - Связанные события:
transitionrun,transitionstart,transitionend
© 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/transitioncancel_event