53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import jQuery from 'jquery';
|
|
|
|
+(function($) {
|
|
'use strict';
|
|
|
|
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
|
|
// ============================================================
|
|
|
|
function transitionEnd() {
|
|
var el = document.createElement('bootstrap');
|
|
|
|
var transEndEventNames = {
|
|
WebkitTransition: 'webkitTransitionEnd',
|
|
MozTransition: 'transitionend',
|
|
OTransition: 'oTransitionEnd otransitionend',
|
|
transition: 'transitionend'
|
|
};
|
|
|
|
for (var name in transEndEventNames) {
|
|
if (el.style[name] !== undefined) {
|
|
return { end: transEndEventNames[name] };
|
|
}
|
|
}
|
|
|
|
return false; // explicit for ie8 ( ._.)
|
|
}
|
|
|
|
// http://blog.alexmaccaw.com/css-transitions
|
|
$.fn.emulateTransitionEnd = function(duration) {
|
|
var called = false;
|
|
var $el = this;
|
|
$(this).one('bsTransitionEnd', function() { called = true; });
|
|
var callback = function() { if (!called) $($el).trigger($.support.transition.end); };
|
|
setTimeout(callback, duration);
|
|
return this;
|
|
};
|
|
|
|
$(function() {
|
|
$.support.transition = transitionEnd();
|
|
|
|
if (!$.support.transition) return;
|
|
|
|
$.event.special.bsTransitionEnd = {
|
|
bindType: $.support.transition.end,
|
|
delegateType: $.support.transition.end,
|
|
handle: function(e) {
|
|
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);
|
|
}
|
|
};
|
|
});
|
|
|
|
}(jQuery));
|