PageSourceSearch

https://ludhianacmcusa.org/wp-content/plugins/ollie-pro/inc/extens…/scroll-resize-frontend.js?ver=2.9.1

js ludhianacmcusa.org collected 2026-10-09 22:39:36 UTC 1,833 bytes, 79 lines download raw bytes

1/**
2 * Scroll Resize - Frontend Script
3 *
4 * Scales down sticky elements as the user scrolls past the stick point.
5 * Add the class 'has-scroll-resize' to a sticky element to trigger.
6 *
7 * @package OlliePro
8 */
9
10( function () {
11	'use strict';
12
13	var MOBILE_BREAKPOINT = 781;
14	var SCROLL_DISTANCE = 200;
15	var MIN_SCALE = 0.85;
16
17	var elements = [];
18
19	function isMobile() {
20		return window.innerWidth <= MOBILE_BREAKPOINT;
21	}
22
23	function init() {
24		var els = document.querySelectorAll( '.has-scroll-resize' );
25
26		if ( ! els.length ) {
27			return;
28		}
29
30		var initialScrollY = window.scrollY || window.pageYOffset;
31
32		els.forEach( function ( el ) {
33			var stickyOffset = getComputedStyle( el ).getPropertyValue( '--sticky-top-offset' );
34			var stickyTop = stickyOffset ? parseFloat( stickyOffset ) : ( parseFloat( getComputedStyle( el ).top ) || 0 );
35
36			var rect = el.getBoundingClientRect();
37			var stickPoint = rect.top + initialScrollY - stickyTop;
38
39			elements.push( {
40				el: el,
41				stickPoint: stickPoint,
42			} );
43
44			el.style.transformOrigin = 'top left';
45		} );
46
47		window.addEventListener( 'scroll', onScroll, { passive: true } );
48		onScroll();
49	}
50
51	function onScroll() {
52		if ( isMobile() ) {
53			elements.forEach( function ( item ) {
54				item.el.style.transform = '';
55			} );
56			return;
57		}
58
59		var scrollY = window.scrollY || window.pageYOffset;
60
61		elements.forEach( function ( item ) {
62			var scrolledPast = scrollY - item.stickPoint;
63
64			if ( scrolledPast > 0 ) {
65				var progress = Math.min( scrolledPast / SCROLL_DISTANCE, 1 );
66				var scale = 1 - ( 1 - MIN_SCALE ) * progress;
67				item.el.style.transform = 'scale(' + scale + ')';
68			} else {
69				item.el.style.transform = '';
70			}
71		} );
72	}
73
74	if ( document.readyState === 'loading' ) {
75		document.addEventListener( 'DOMContentLoaded', init );
76	} else {
77		init();
78	}
79} )();

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.