PageSourceSearch

https://www.anjaschuck.com/wp-content/themes/lawbusiness/js/jquery.inview.js?ver=1.0.0

js anjaschuck.com collected 2026-10-08 20:44:14 UTC 5,358 bytes, 134 lines download raw bytes

vendor: 5,358 bytes, lines 1-134
1/**
2 * author Christopher Blum
3 *    - based on the idea of Remy Sharp, http://remysharp.com/2009/01/26/element-in-view-event-plugin/
4 *    - forked from http://github.com/zuk/jquery.inview/
5 */
6(function ($) {
7  var inviewObjects = {}, viewportSize, viewportOffset,
8      d = document, w = window, documentElement = d.documentElement, expando = $.expando;
9
10  $.event.special.inview = {
11    add: function(data) {
12      inviewObjects[data.guid + "-" + this[expando]] = { data: data, $element: $(this) };
13    },
14
15    remove: function(data) {
16      try { delete inviewObjects[data.guid + "-" + this[expando]]; } catch(e) {}
17    }
18  };
19
20  function getViewportSize() {
21    var mode, domObject, size = { height: w.innerHeight, width: w.innerWidth };
22
23    // if this is correct then return it. iPad has compat Mode, so will
24    // go into check clientHeight/clientWidth (which has the wrong value).
25    if (!size.height) {
26      mode = d.compatMode;
27      if (mode || !$.support.boxModel) { // IE, Gecko
28        domObject = mode === 'CSS1Compat' ?
29          documentElement : // Standards
30          d.body; // Quirks
31        size = {
32          height: domObject.clientHeight,
33          width:  domObject.clientWidth
34        };
35      }
36    }
37
38    return size;
39  }
40
41  function getViewportOffset() {
42    return {
43      top:  w.pageYOffset || documentElement.scrollTop   || d.body.scrollTop,
44      left: w.pageXOffset || documentElement.scrollLeft  || d.body.scrollLeft
45    };
46  }
47
48  function checkInView() {
49    var $elements = $(), elementsLength, i = 0;
50
51    $.each(inviewObjects, function(i, inviewObject) {
52      var selector  = inviewObject.data.selector,
53          $element  = inviewObject.$element;
54      $elements = $elements.add(selector ? $element.find(selector) : $element);
55    });
56
57    elementsLength = $elements.length;
58    if (elementsLength) {
59      viewportSize   = viewportSize   || getViewportSize();
60      viewportOffset = viewportOffset || getViewportOffset();
61
62      for (; i<elementsLength; i++) {
63        // Ignore elements that are not in the DOM tree
64        if (!$.contains(documentElement, $elements[i])) {
65          continue;
66        }
67
68        var $element      = $($elements[i]),
69            elementSize   = { height: $element.outerHeight(), width: $element.outerWidth() },
70            elementOffset = $element.offset(),
71            inView        = $element.data('inview'),
72            visiblePartX,
73            visiblePartY,
74            visiblePartsMerged;
75        
76        // Don't ask me why because I haven't figured out yet:
77        // viewportOffset and viewportSize are sometimes suddenly null in Firefox 5.
78        // Even though it sounds weird:
79        // It seems that the execution of this function is interferred by the onresize/onscroll event
80        // where viewportOffset and viewportSize are unset
81        if (!viewportOffset || !viewportSize) {
82          return;
83        }
84        if (elementOffset.top + elementSize.height > viewportOffset.top &&
85            elementOffset.top < viewportOffset.top + viewportSize.height &&
86            elementOffset.left + elementSize.width > viewportOffset.left &&
87            elementOffset.left < viewportOffset.left + viewportSize.width) {
88          visiblePartX = (viewportOffset.left > elementOffset.left ?
89            'right' : (viewportOffset.left + viewportSize.width) < (elementOffset.left + elementSize.width) ?
90            'left' : 'both');
91          visiblePartY = (viewportOffset.top > elementOffset.top ?
92            'bottom' : (viewportOffset.top + viewportSize.height) < (elementOffset.top + elementSize.height) ?
93            'top' : 'both');
94          visiblePartsMerged = visiblePartX + "-" + visiblePartY;
95          if (!inView || inView !== visiblePartsMerged) {
96            $element.data('inview', visiblePartsMerged).trigger('inview', [true, visiblePartX, visiblePartY]);
97          }
98        } else if (inView) {
99          $element.data('inview', false).trigger('inview', [false]);
100        }
101      }
102    }
103  }
104
105  $(w).bind("scroll resize", function() {
106    viewportSize = viewportOffset = null;
107  });
108  
109  // IE < 9 scrolls to focused elements without firing the "scroll" event
110  if (!documentElement.addEventListener && documentElement.attachEvent) {
111    documentElement.attachEvent("onfocusin", function() {
112      viewportOffset = null;
113    });
114  }
115
116  // Use setInterval in order to also make sure this captures elements within
117  // "overflow:scroll" elements or elements that appeared in the dom tree due to
118  // dom manipulation and reflow
119  $(window).scroll(checkInView);
120  //
121  // By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays
122  // intervals while the user scrolls. Therefore the inview event might fire a bit late there
123  setInterval(checkInView, 250);
124
125	$(document).ready(function() {
126		$('.cmsms_timeline_inner_wrap, .chart, .cmsms_clients_img, .percent_item_text, .cmsms_post_animation, .cmsms_hover_slider_thumbs img, div[data-animation="fadein"], div[data-animation="scalefade"], div[data-animation="to_bottom"], div[data-animation="to_right"], div[data-animation="to_left"], div[data-animation="to_top"]').bind('inview', function(event, visible, visiblePartX, visiblePartY) {
127		   if (visible) {
128			if (visiblePartY && visiblePartY == 'both') {
129				$(this).addClass('cmsms_animated');
130			}
131		  }
132		});
133	});
134})(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.