元素:transitioncancel 事件
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";
});
如果在transitionrun
事件发生后但在transitionend
事件触发之前,过渡在任一方向上被取消,则会触发transitioncancel
事件。
如果没有过渡延迟或持续时间,如果两者都是 0s 或两者都没有声明,则没有过渡,并且不会触发任何过渡事件。
如果触发了transitioncancel
事件,则不会触发transitionend
事件。
规范
规范 |
---|
CSS 过渡 # transitioncancel |
CSS 过渡 # dom-globaleventhandlers-ontransitioncancel |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。