PageSourceSearch

https://www.wiriko.org/wp-content/themes/enfold/js/avia-snippet-sticky-header.js?ver=8.1

js wiriko.org collected 2026-09-24 09:43:26 UTC 4,456 bytes, 200 lines download raw bytes

1(function($)
2{
3	"use strict";
4
5	$( function()
6	{
7		// decreases header size when user scrolls down
8		avia_header_size();
9	});
10
11
12	function av_change_class($element, change_method, class_name)
13	{
14		if($element[0].classList)
15		{
16			if(change_method == "add")
17			{
18				$element[0].classList.add(class_name);
19			}
20			else
21			{
22				$element[0].classList.remove(class_name);
23			}
24		}
25		else
26		{
27			if(change_method == "add")
28			{
29				$element.addClass(class_name);
30			}
31			else
32			{
33				$element.removeClass(class_name);
34			}
35		}
36	}
37
38
39	function avia_header_size()
40	{
41		var win				= $(window),
42			header          = $('.html_header_top.html_header_sticky #header'),
43			unsticktop		= $('.av_header_unstick_top');
44
45		if( ! header.length && ! unsticktop.length )
46		{
47			return;
48		}
49
50		var logo            = $('#header_main .container .logo img, #header_main .container .logo svg, #header_main .container .logo a'),
51			elements        = $('#header_main .container:not(#header_main_alternate>.container), #header_main .main_menu ul:first-child > li > a:not(.avia_mega_div a, #header_main_alternate a), #header_main #menu-item-shop .cart_dropdown_link'),
52			el_height       = $(elements).first().height(),
53			isMobile        = $.avia_utilities.isMobile,
54			scroll_top		= $('#scroll-top-link'),
55			transparent 	= header.is('.av_header_transparency'),
56			shrinking		= header.is('.av_header_shrinking'),
57			shrink_factor	= header.data( 'av_shrink_factor' ),
58			shrink_val		= el_height/2.0,
59			el_shrinked		= el_height/2.0,
60			header_meta		= header.find('#header_meta'),
61			topbar_height	= header_meta.length ? header_meta.outerHeight() : 0,
62			header_alternate = header.find('#header_main_alternate'),
63			alternate_header_height = header_alternate.length ? header_alternate.outerHeight() : 0,
64
65			set_height = function()
66			{
67				var st = win.scrollTop(),
68					newH = 0,
69					st_real = st;
70
71				if( unsticktop )
72				{
73					st -= topbar_height;
74				}
75
76				if( st < 0 )
77				{
78					st = 0;
79				}
80
81				if( shrinking && ! isMobile )
82				{
83					if( st < shrink_val )
84					{
85						newH = el_height - st;
86						if( st <= 0 )
87						{
88							newH = el_height;
89						}
90
91						av_change_class( header, 'remove', 'header-scrolled' );
92						//header.removeClass('header-scrolled');
93					}
94					else
95					{
96						newH = el_shrinked;
97						//header.addClass('header-scrolled');
98						av_change_class( header, 'add', 'header-scrolled' );
99					}
100
101					if( st - 30 < el_height )
102					{
103						av_change_class( header, 'remove', 'header-scrolled-full' );
104					}
105					else
106					{
107						av_change_class( header, 'add', 'header-scrolled-full' );
108					}
109
110					elements.css({'height': newH + 'px', 'lineHeight': newH + 'px'});
111					logo.css({'maxHeight': newH + 'px'});
112
113					// (solution contributed by Guenni007)
114					let propHeight = newH + alternate_header_height;
115
116					if( header.length )
117					{
118						if( ! unsticktop.length )
119						{
120							propHeight += topbar_height;
121						}
122						else
123						{
124							if( st <= topbar_height )
125							{
126								propHeight = propHeight + topbar_height - st_real;
127							}
128						}
129					}
130
131					$(':root')[0].style.setProperty( '--enfold-header-height', Math.round( propHeight ) + 'px' );
132				}
133
134				if( unsticktop.length )
135				{
136					if( st <= 0 )
137					{
138						if( st_real <= 0 )
139						{
140							st_real = 0;
141						}
142
143						unsticktop.css({"margin-top":"-"+st_real+"px"});
144					}
145					else
146					{
147						unsticktop.css({"margin-top":"-"+topbar_height+"px"});
148					}
149				}
150
151				if( transparent )
152				{
153					if( st > 50 )
154					{
155						//header.removeClass('av_header_transparency');
156						av_change_class( header, 'remove', 'av_header_transparency' );
157					}
158					else
159					{
160						//header.addClass('av_header_transparency');
161						av_change_class( header, 'add', 'av_header_transparency' );
162					}
163				}
164			};
165
166		if( typeof shrink_factor != 'undefined' )
167		{
168			const value = parseInt( shrink_factor );
169			if( ! isNaN( value ) )
170			{
171				shrink_val = el_height * ( value / 100.0 );
172				el_shrinked = el_height - shrink_val;
173			}
174		}
175
176		if( $('body').is( '.avia_deactivate_menu_resize' ) )
177		{
178			shrinking = false;
179		}
180
181		if( ! transparent && ! shrinking && ! unsticktop.length )
182		{
183			return;
184		}
185
186		win.on( 'debouncedresize',  function()
187		{
188			el_height = $( elements ).attr( 'style',"" ).first().height();
189			set_height();
190		});
191
192		win.on( 'scroll',  function()
193		{
194			window.requestAnimationFrame( set_height );
195		});
196
197		set_height();
198    }
199
200})(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.