transitionend event is fired when a CSS transition has completed. In the case where a transition is removed before completion, such as if the transition-property is removed or display 被设为 none , then the event will not be generated.

冒泡 Yes
可取消 Yes
接口 TransitionEvent
事件处理程序特性 ontransitionend

transitionend event is fired in both directions - as it finishes transitioning to the transitioned state, and when it fully reverts to the default or non-transitioned state. 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.  If the transitioncancel event is fired, the transitionend event will not fire.

范例

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

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

一样,但使用 ontransitionend :

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

实时范例

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

<div class="transition">Hover over me</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: 1s;
}
.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';
});
					

transitionend event is fired in both directions: when the box finishes turning and the opacity hits 0 or 1, depending on the direction.

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 'transitionend' 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
transitionend event Chrome 26
26
1 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
Edge ≤79
≤79
≤79 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
Firefox 51 IE 10 Opera 12.1
12.1
15 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
不支持 11.6 — 15 Alternate Name
Alternate Name Uses the non-standard name: oTransitionEnd
Safari 6.1
6.1
4 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
WebView Android ≤37
≤37
1 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
Chrome Android 26
26
18 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
Firefox Android 51 Opera Android 12.1
12.1
14 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
不支持 12 — 14 Alternate Name
Alternate Name Uses the non-standard name: oTransitionEnd
Safari iOS 7
7
3.2 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd
Samsung Internet Android 1.5
1.5
1.0 Alternate Name
Alternate Name Uses the non-standard name: webkitTransitionEnd

图例

完整支持

完整支持

使用非标名称。

另请参阅

元数据

  • 最后修改:
  1. HTMLElement
  2. 特性
    1. contentEditable
    2. contextMenu
    3. dir
    4. hidden
    5. innerText
    6. isContentEditable
    7. lang
    8. offsetHeight
    9. offsetLeft
    10. offsetParent
    11. offsetTop
    12. offsetWidth
    13. onabort
    14. onanimationcancel
    15. onanimationend
    16. onanimationiteration
    17. onauxclick
    18. onblur
    19. oncancel
    20. oncanplay
    21. oncanplaythrough
    22. onchange
    23. onclick
    24. onclose
    25. oncontextmenu
    26. oncopy
    27. oncuechange
    28. oncut
    29. ondblclick
    30. ondurationchange
    31. onended
    32. onerror
    33. onfocus
    34. onformdata
    35. ongotpointercapture
    36. oninput
    37. oninvalid
    38. onkeydown
    39. onkeypress
    40. onkeyup
    41. onload
    42. onloadeddata
    43. onloadedmetadata
    44. onloadend
    45. onloadstart
    46. onlostpointercapture
    47. onmousedown
    48. onmouseenter
    49. onmouseleave
    50. onmousemove
    51. onmouseout
    52. onmouseover
    53. onmouseup
    54. onpaste
    55. onpause
    56. onplay
    57. onplaying
    58. onpointercancel
    59. onpointerdown
    60. onpointerenter
    61. onpointerleave
    62. onpointermove
    63. onpointerout
    64. onpointerover
    65. onpointerup
    66. onreset
    67. onresize
    68. onscroll
    69. onselect
    70. onselectionchange
    71. onselectstart
    72. onsubmit
    73. ontouchcancel
    74. ontouchstart
    75. ontransitioncancel
    76. ontransitionend
    77. onwheel
    78. outerText
    79. title
  3. 方法
    1. click()
    2. forceSpellCheck()
  4. 事件
    1. animationcancel
    2. animationend
    3. animationiteration
    4. animationstart
    5. beforeinput
    6. change
    7. gotpointercapture
    8. input
    9. lostpointercapture
    10. pointercancel
    11. pointerdown
    12. pointerenter
    13. pointerleave
    14. pointermove
    15. pointerout
    16. pointerover
    17. pointerup
    18. transitioncancel
    19. transitionend
    20. transitionrun
    21. transitionstart
  5. 继承:
    1. 元素
    2. 节点
    3. EventTarget

版权所有  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1