Skip to content

Instantly share code, notes, and snippets.

@john-yuan
Last active January 27, 2019 03:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save john-yuan/72672ab8d0f5a3dc6a33190c6a9566bb to your computer and use it in GitHub Desktop.
Save john-yuan/72672ab8d0f5a3dc6a33190c6a9566bb to your computer and use it in GitHub Desktop.
var onceTransitionEnd = function (node, time, callback) {
var finished = false;
var timer = setTimeout(listener, time + 50);
var listener = function () {
if (finished === false) {
removeListener();
node = null;
time = null;
listener = null;
removeListener = null;
callback();
callback = null;
}
};
var removeListener = function () {
finished = true;
clearTimeout(timer);
node.removeEventListener('webkitTransitionend', listener, false);
node.removeEventListener('mozTransitionend', listener, false);
node.removeEventListener('MSTransitionend', listener, false);
node.removeEventListener('oTransitionend', listener, false);
node.removeEventListener('Transitionend', listener, false);
};
node.addEventListener('webkitTransitionend', listener, false);
node.addEventListener('mozTransitionend', listener, false);
node.addEventListener('MSTransitionend', listener, false);
node.addEventListener('oTransitionend', listener, false);
node.addEventListener('transitionend', listener, false);
return removeListener;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment