assets/javascripts/bootstrap/transition.js
changeset 114 af15590802a4
equal deleted inserted replaced
113:d4ec02c51c91 114:af15590802a4
       
     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);