PageSourceSearch

https://thepointersisters.com/files/theme/jquery.trend.js?1621991487

js thepointersisters.com collected 2026-10-02 10:27:14 UTC 3,775 bytes, 139 lines download raw bytes

1/*!
2 * Trend 0.2.0
3 *
4 * Fail-safe TransitionEnd event for jQuery.
5 *
6 * Adds a new "trend" event that can be used in browsers that don't
7 * support "transitionend".
8 *
9 * NOTE: Only supports being bound with "jQuery.one".
10 *
11 * Copyright 2014, Pixel Union - http://pixelunion.net
12 * Released under the MIT license
13 */
14;(function($){
15
16  // Prefixed transitionend event names
17  var transitionEndEvents =
18    "webkitTransitionEnd " +
19    "otransitionend " +
20    "oTransitionEnd " +
21    "msTransitionEnd " +
22    "transitionend";
23
24  // Prefixed transition duration property names
25  var transitionDurationProperties = [
26    "transition-duration",
27    "-moz-transition-duration",
28    "-webkit-transition-duration",
29    "-ms-transition-duration",
30    "-o-transition-duration",
31    "-khtml-transition-duration"
32  ];
33
34  // Prefixed transition delay property names
35  var transitionDelayProperties = [
36    "transition-delay",
37    "-moz-transition-delay",
38    "-webkit-transition-delay",
39    "-ms-transition-delay",
40    "-o-transition-delay",
41    "-khtml-transition-delay"
42  ];
43
44  // Parses a CSS time value into milliseconds.
45  var parseTime = function(s) {
46    s = s.replace(/\s/, "");
47    var v = window.parseFloat(s);
48
49    return s.match(/[^m]s$/i)
50      ? v * 1000
51      : v;
52  };
53
54  // Parses the longest time unit found in a series of CSS properties.
55  // Returns a value in milliseconds.
56  var parseProperties = function(el, properties) {
57    var duration = 0;
58
59    for (var i = 0; i < properties.length; i++) {
60      // Get raw CSS value
61      var value = el.css(properties[i]);
62      if (!value) continue;
63
64      // Multiple transitions--pick the longest
65      if (value.indexOf(",") !== -1) {
66        var values = value.split(",");
67        var durations = (function(){
68          var results = [];
69          for (var i = 0; i < values.length; i++) {
70            var duration = parseTime(values[i]);
71            results.push(duration);
72          }
73          return results;
74        })();
75
76        duration = Math.max.apply(Math, durations);
77      }
78
79      // Single transition
80      else {
81        duration = parseTime(value);
82      }
83
84      // Accept first vaue
85      break;
86    }
87
88    return duration;
89  };
90
91  $.event.special.trend = {
92    // Triggers an event handler when an element is done transitioning.
93    //
94    // Handles browsers that don't support transitionend by adding a
95    // timeout with the transition duration.
96    add: function(handleObj) {
97      var el = $(this);
98      var fired = false;
99
100      // Mark element as being in transition
101      el.data("trend", true);
102
103      // Calculate a fallback duration. + 20 because some browsers fire
104      // timeouts faster than transitionend.
105      var time =
106        parseProperties(el, transitionDurationProperties) +
107        parseProperties(el, transitionDelayProperties) +
108        20;
109
110      var cb = function(e) {
111        // transitionend events can be sent for each property. Let's just
112        // skip all but the first. Also handles the timeout callback.
113        if (fired) return;
114
115        // Child elements that also have transitions can be fired before we
116        // complete. This will catch and ignore those. Unfortunately, we'll
117        // have to rely on the timeout in these cases.
118        if (e && e.srcElement !== el[0]) return;
119
120        // Mark element has not being in transition
121        el.data("trend", false);
122
123        // Callback
124        fired = true;
125        if (handleObj.handler) handleObj.handler();
126      };
127
128      el.one(transitionEndEvents, cb);
129      el.data("trend-timeout", window.setTimeout(cb, time));
130    },
131
132    remove: function(handleObj) {
133      var el = $(this);
134      el.off(transitionEndEvents);
135      window.clearTimeout(el.data("trend-timeout"));
136    }
137  };
138
139})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.