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