PageSourceSearch

https://www.kuoshu.net/wp-content/themes/youko/js/vendor/jquery.appear.js?ver=1.1.0

js kuoshu.net collected 2026-10-02 13:45:17 UTC 2,480 bytes, 102 lines download raw bytes

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