|
1 /* ======================================================================== |
|
2 * Bootstrap: transition.js v3.3.5 |
|
3 * http://getbootstrap.com/javascript/#transitions |
|
4 * ======================================================================== |
|
5 * Copyright 2011-2015 Twitter, Inc. |
|
6 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
|
7 * ======================================================================== */ |
|
8 |
|
9 |
|
10 +function ($) { |
|
11 'use strict'; |
|
12 |
|
13 // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) |
|
14 // ============================================================ |
|
15 |
|
16 function transitionEnd() { |
|
17 var el = document.createElement('bootstrap') |
|
18 |
|
19 var transEndEventNames = { |
|
20 WebkitTransition : 'webkitTransitionEnd', |
|
21 MozTransition : 'transitionend', |
|
22 OTransition : 'oTransitionEnd otransitionend', |
|
23 transition : 'transitionend' |
|
24 } |
|
25 |
|
26 for (var name in transEndEventNames) { |
|
27 if (el.style[name] !== undefined) { |
|
28 return { end: transEndEventNames[name] } |
|
29 } |
|
30 } |
|
31 |
|
32 return false // explicit for ie8 ( ._.) |
|
33 } |
|
34 |
|
35 // http://blog.alexmaccaw.com/css-transitions |
|
36 $.fn.emulateTransitionEnd = function (duration) { |
|
37 var called = false |
|
38 var $el = this |
|
39 $(this).one('bsTransitionEnd', function () { called = true }) |
|
40 var callback = function () { if (!called) $($el).trigger($.support.transition.end) } |
|
41 setTimeout(callback, duration) |
|
42 return this |
|
43 } |
|
44 |
|
45 $(function () { |
|
46 $.support.transition = transitionEnd() |
|
47 |
|
48 if (!$.support.transition) return |
|
49 |
|
50 $.event.special.bsTransitionEnd = { |
|
51 bindType: $.support.transition.end, |
|
52 delegateType: $.support.transition.end, |
|
53 handle: function (e) { |
|
54 if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) |
|
55 } |
|
56 } |
|
57 }) |
|
58 |
|
59 }(jQuery); |