PageSourceSearch

https://www.pombaldir.com/ficheiro/themes/amply/js/vendor/jquery.appear.js?ver=1.0.1

js pombaldir.com collected 2026-10-01 23:56:34 UTC 2,762 bytes, 117 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
35      $appeared.trigger('appear', [$appeared]);
36
37      if ($prior_appeared[index]) {
38        var $disappeared = $prior_appeared[index].not($appeared);
39        $disappeared.trigger('disappear', [$disappeared]);
40      }
41      $prior_appeared[index] = $appeared;
42    }
43  }
44
45  function add_selector(selector) {
46    selectors.push(selector);
47    $prior_appeared.push();
48  }
49
50  // "appeared" custom filter
51  $.expr[':'].appeared = function(element) {
52    var $element = $(element);
53    if (!$element.is(':visible')) {
54      return false;
55    }
56
57    var window_left = $window.scrollLeft();
58    var window_top = $window.scrollTop();
59    var offset = $element.offset();
60    var left = offset.left;
61    var top = offset.top;
62
63    if (top + $element.height() >= window_top &&
64        top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() &&
65        left + $element.width() >= window_left &&
66        left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) {
67      return true;
68    } else {
69      return false;
70    }
71  };
72
73  $.fn.extend({
74    // watching for element's appearance in browser viewport
75    appear: function(options) {
76      var opts = $.extend({}, defaults, options || {});
77      var selector = this.selector || this;
78      if (!check_binded) {
79        var on_check = function() {
80          if (check_lock) {
81            return;
82          }
83          check_lock = true;
84
85          setTimeout(process, opts.interval);
86        };
87
88        $(window).scroll(on_check).resize(on_check);
89        check_binded = true;
90      }
91
92      if (opts.force_process) {
93        setTimeout(process, opts.interval);
94      }
95      add_selector(selector);
96      return $(selector);
97    }
98  });
99
100  $.extend({
101    // force elements's appearance check
102    force_appear: function() {
103      if (check_binded) {
104        process();
105        return true;
106      }
107      return false;
108    }
109  });
110})(function() {
111  if (typeof module !== 'undefined') {
112    // Node
113    return require('jquery');
114  } else {
115    return jQuery;
116  }
117}());

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.