mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-11-13 03:35:52 +01:00
63 lines
1.6 KiB
JavaScript
Executable File
63 lines
1.6 KiB
JavaScript
Executable File
(function(root) {
|
|
var callbacks = [];
|
|
|
|
var transitionComplete = function(callback) {
|
|
if(callbacks.length === 0) {
|
|
setEvent();
|
|
}
|
|
|
|
callbacks.push(callback);
|
|
};
|
|
|
|
function setEvent() {
|
|
document.addEventListener(eventName(), function() {
|
|
var i = callbacks.length;
|
|
while(i--) {
|
|
callbacks[i]();
|
|
}
|
|
|
|
callbacks = [];
|
|
});
|
|
}
|
|
|
|
var _eventName;
|
|
|
|
function eventName() {
|
|
if(!_eventName) {
|
|
// Sourced from: http://stackoverflow.com/questions/5023514/how-do-i-normalize-css3-transition-functions-across-browsers
|
|
var el = document.createElement('fakeelement');
|
|
transitions = {
|
|
transition: 'transitionend',
|
|
OTransition: 'oTransitionEnd',
|
|
MozTransition: 'transitionend',
|
|
WebkitTransition: 'webkitTransitionEnd'
|
|
};
|
|
|
|
for(var t in transitions) {
|
|
if(el.style[t] !== undefined) {
|
|
_eventName = transitions[t];
|
|
}
|
|
}
|
|
}
|
|
|
|
return _eventName;
|
|
}
|
|
|
|
/*** Export ***/
|
|
|
|
// AMD
|
|
if(typeof define === 'function' && define.amd) {
|
|
define([], function() {
|
|
return transitionComplete;
|
|
});
|
|
}
|
|
// CommonJS
|
|
else if(typeof exports !== 'undefined') {
|
|
module.exports = transitionComplete;
|
|
}
|
|
// Browser Global
|
|
else {
|
|
root.transitionComplete = transitionComplete;
|
|
}
|
|
})(this);
|