如何创建自定义事件来处理所有transitionend事件?

时间:2013-10-29 13:08:08

标签: javascript javascript-events transition event-listener custom-events

我想创建一个自定义事件,处理transitionend事件的所有不同供应商前缀版本(即webkitTransitionEndmozTransitionEndmsTransitionEnd,{{ 1}}和W3C oTransitionEnd事件。)

理想情况下,我希望能够使用我想要创建的自定义transitionend事件,如下所示:

transitionend

不幸的是,我不知道如何做到这一点。我正在调查elem.addEventListener('myTransitionEnd', function (evt) { // Called whenever any transitionend event fires. }); ,但我无法弄清楚如何将document.createEventdocument.createEventinitEvent一起使用来实际启动我的自定义dispatchEvent事件当任何适用的transitionend事件触发我之后使用自定义事件设置的某些任意DOM元素时。

对代码的任何帮助都将非常感激 此外,如果有更好的方法解决此问题而不是创建自定义事件,请告诉我 最后,我真的只想拥有一个尽可能模块化的解决方案(我希望在我学习JS的过程中学习一些关于自定义事件的东西)。

谢谢。

1 个答案:

答案 0 :(得分:1)

一种简单的方法是创建一个包含所有transitionend事件的全局变量(字符串)。然后为该字符串添加一个eventlistener。例如:

//your global var:
window.endTransition = 'webkitTransitionEnd mozTransitionEnd msTransitionEnd oTransitionEnd transitionend';

//your event
elem.addEventListener(window.endTransition, function(e){
    //your awesome piece of JS
});