PageSourceSearch

https://amomassagem.com.br/3dParty/inview.js

js amomassagem.com.br collected 2026-10-02 01:17:44 UTC 4,574 bytes, 125 lines download raw bytes

vendor: 4,574 bytes, lines 1-125
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.height(), width: $element.width() },
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
85				if (elementOffset.top + elementSize.height > viewportOffset.top &&
86					elementOffset.top < viewportOffset.top + viewportSize.height &&
87					elementOffset.left + elementSize.width > viewportOffset.left &&
88					elementOffset.left < viewportOffset.left + viewportSize.width) {
89					visiblePartX = (viewportOffset.left > elementOffset.left ?
90						'right' : (viewportOffset.left + viewportSize.width) < (elementOffset.left + elementSize.width) ?
91						'left' : 'both');
92					visiblePartY = (viewportOffset.top > elementOffset.top ?
93						'bottom' : (viewportOffset.top + viewportSize.height) < (elementOffset.top + elementSize.height) ?
94						'top' : 'both');
95					visiblePartsMerged = visiblePartX + "-" + visiblePartY;
96					if (!inView || inView !== visiblePartsMerged) {
97						$element.data('inview', visiblePartsMerged).trigger('inview', [true, visiblePartX, visiblePartY]);
98					}
99				} else if (inView) {
100					$element.data('inview', false).trigger('inview', [false]);
101				}
102			}
103		}
104	}
105
106	$(w).bind("scroll resize", function() {
107		viewportSize = viewportOffset = null;
108	});
109
110	// IE < 9 scrolls to focused elements without firing the "scroll" event
111	if (!documentElement.addEventListener && documentElement.attachEvent) {
112		documentElement.attachEvent("onfocusin", function() {
113			viewportOffset = null;
114		});
115	}
116
117	// Use setInterval in order to also make sure this captures elements within
118	// "overflow:scroll" elements or elements that appeared in the dom tree due to
119	// dom manipulation and reflow
120	// old: $(window).scroll(checkInView);
121	//
122	// By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays
123	// intervals while the user scrolls. Therefore the inview event might fire a bit late there
124	setInterval(checkInView, 250);
125})(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.