PageSourceSearch

https://guapimirim.rj.gov.br/wp-content/plugins/skt-skill-bar/skill_bar/bar/jquery.appear.js

js guapimirim.rj.gov.br collected 2026-10-02 20:20:36 UTC 2,875 bytes, 116 lines download raw bytes

1/*
2 * jQuery appear plugin
3 *
4 * Copyright (c) 2012 Andrey Sidorov
5 * licensed under MIT license.
6 *
7 * https://github.com/morr/jquery.appear/
8 *
9 * Version: 0.3.6
10 */
11(function($) {
12  var selectors = [];
13
14  var check_binded = false;
15  var check_lock = false;
16  var defaults = {
17    interval: 250,
18    force_process: false
19  };
20  var $window = $(window);
21
22  var $prior_appeared = [];
23
24  function appeared(selector) {
25    return $(selector).filter(function() {
26      return $(this).is(':appeared');
27    });
28  }
29
30  function process() {
31    check_lock = false;
32    for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) {
33      var $appeared = appeared(selectors[index]);
34      $appeared.trigger('appear', [$appeared]);
35
36      if ($prior_appeared[index]) {
37        var $disappeared = $prior_appeared[index].not($appeared);
38        $disappeared.trigger('disappear', [$disappeared]);
39      }
40      $prior_appeared[index] = $appeared;
41    }
42  }
43
44  function add_selector(selector) {
45    selectors.push(selector);
46    $prior_appeared.push();
47  }
48
49  // "appeared" custom filter
50  $.expr[':'].appeared = function(element) {
51    var $element = $(element);
52    if (!$element.is(':visible')) {
53      return false;
54    }
55
56    var window_left = $window.scrollLeft();
57    var window_top = $window.scrollTop();
58    var offset = $element.offset();
59    var left = offset.left;
60    var top = offset.top;
61
62    if (top + $element.height() >= window_top &&
63        top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() &&
64        left + $element.width() >= window_left &&
65        left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) {
66      return true;
67    } else {
68      return false;
69    }
70  };
71
72  $.fn.extend({
73    // watching for element's appearance in browser viewport
74    appear: function(options) {
75      var opts = $.extend({}, defaults, options || {});
76      var selector = this.selector || this;
77      if (!check_binded) {
78        var on_check = function() {
79          if (check_lock) {
80            return;
81          }
82          check_lock = true;
83
84          setTimeout(process, opts.interval);
85        };
86
87        $(window).scroll(on_check).resize(on_check);
88        check_binded = true;
89      }
90
91      if (opts.force_process) {
92        setTimeout(process, opts.interval);
93      }
94      add_selector(selector);
95      return $(selector);
96    }
97  });
98
99  $.extend({
100    // force elements's appearance check
101    force_appear: function() {
102      if (check_binded) {
103        process();
104        return true;
105      }
106      return false;
107    }
108  });
109})(function() {
110  if (typeof module !== 'undefined') {
111    // Node
112    return require('jquery');
113  } else {
114    return jQuery;
115  }
116}());

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.