这是 实验性技术
检查 浏览器兼容性表格 要小心谨慎在生产中使用这之前。

transitioncancel event is fired when a CSS transition 被取消。

GlobalEventHandlers.ontransitioncancel 了解更多信息。

冒泡 Yes
可取消 No
接口 TransitionEvent
事件处理程序特性 GlobalEventHandlers.ontransitioncancel

范例

This code gets an element that has a transition defined and adds a listener to the transitioncancel event:

const transition = document.querySelector('.transition');
transition.addEventListener('transitioncancel', () => {
  console.log('Transition canceled');
});
					

一样,但使用 ontransitioncancel property instead of addEventListener() :

const transition = document.querySelector('.transition');
transition.ontransitioncancel = () => {
  console.log('Transition canceled');
};
					

实时范例

In the following example, we have a simple <div> element, styled with a transition that includes a delay:

<div class="transition"></div>
<div class="message"></div>
					
.transition {
  width: 100px;
  height: 100px;
  background: rgba(255,0,0,1);
  transition-property: transform background;
  transition-duration: 2s;
  transition-delay: 2s;
}
.transition:hover {
  transform: rotate(90deg);
  background: rgba(255,0,0,0);
}
					

To this, we'll add some JavaScript to indicate that the transitionstart , transitionrun , transitioncancel and transitionend events fire. In this example, to cancel the transition, stop hovering over the transitioning box before the transition ends. For the transition end event to fire, stay hovered over the transition until the transition ends.

const message = document.querySelector('.message');
const el = document.querySelector('.transition');
el.addEventListener('transitionrun', function() {
  message.textContent = 'transitionrun fired';
});
el.addEventListener('transitionstart', function() {
  message.textContent = 'transitionstart fired';
});
el.addEventListener('transitioncancel', function() {
  message.textContent = 'transitioncancel fired';
});
el.addEventListener('transitionend', function() {
  message.textContent = 'transitionend fired';
});
					

transitioncancel event is fired if the transition is cancelled in either direction after the transitionrun event occurs and before the transitionend is fired.

If there is no transition delay or duration, if both are 0s or neither is declared, there is no transition, and none of the transition events are fired.

transitioncancel event is fired, the transitionend event will not fire.

规范

规范 状态 注释
CSS Transitions
The definition of 'transitioncancel' in that specification.
工作草案 初始定义。

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
transitioncancel event Chrome 74 Edge ≤79 Firefox 53 IE ? Opera 62 Safari 13.1
13.1
12 Disabled
Disabled From version 12: this feature is behind the Web 动画 preference and the CSS Animations via Web Animations preference.
WebView Android 74 Chrome Android 74 Firefox Android 53 Opera Android 53 Safari iOS 13.4
13.4
12 Disabled
Disabled From version 12: this feature is behind the Web 动画 preference and the CSS Animations via Web Animations preference.
Samsung Internet Android 11.0

图例

完整支持

完整支持

兼容性未知 ?

兼容性未知

用户必须明确启用此特征。

用户必须明确启用此特征。

另请参阅

元数据

  • 最后修改: