PageSourceSearch

https://fundforassistance.org/scripts/navik/js/navik.menu.js?1781732248

js fundforassistance.org collected 2026-10-02 10:31:03 UTC 12,679 bytes, 342 lines download raw bytes

1/**
2	Navik - HTML header navigation menu - v1.4
3 	Copyright (c) 2019, Pophonic
4	
5	Author: Pophonic
6	Profile: https://codecanyon.net/user/pophonic
7	
8**/
9
10
11jQuery(document).ready(function() {
12	
13	"use strict";
14	
15	/* ========== Sticky on scroll ========== */
16	function stickyNav() {
17
18		var scrollTop = $(window).scrollTop(),
19			noSticky = $('.no-sticky'),
20			viewportSm = $('.viewport-sm'),
21			viewportLg = $('.viewport-lg'),
22			viewportLgBody = viewportLg.parent('body'),
23			viewportLgNosticky = $('.viewport-lg.no-sticky'),
24			viewportLgNostickyBody = viewportLgNosticky.parent('body'),
25			viewportLgLogo = viewportLg.find('.logo img'),
26			viewportLgNostickyLogo = viewportLgNosticky.find('.logo img'),
27			headerTransparentLg = $('.viewport-lg.header-transparent'),
28			headerTransparentLgNosticky = $('.viewport-lg.header-transparent.no-sticky'),
29			headerTransparentLgBody = headerTransparentLg.parent('body'),
30			headerOpacityLg = $('.viewport-lg.header-opacity'),
31			headerOpacityLgNosticky = $('.viewport-lg.header-opacity.no-sticky'),
32			headerOpacityLgBody = headerOpacityLg.parent('body');
33
34		if (scrollTop > navikHeaderHeight) {
35			navikHeader.addClass('sticky');
36//			viewportLgLogo.attr('src', stickyLogoSrc);
37//			viewportLgNostickyLogo.attr('src', logoSrc);
38			headerTransparentLg.removeClass('header-transparent-on');
39			headerOpacityLg.removeClass('header-opacity-on');
40			headerTransparentLgNosticky.addClass('header-transparent-on');
41			headerOpacityLgNosticky.addClass('header-opacity-on');
42			viewportLgBody.css("margin-top", navikHeaderHeight);
43			viewportLg.css("margin-top", -navikHeaderHeight);
44		} else {
45			navikHeader.removeClass('sticky');
46//			viewportLgLogo.attr('src', logoSrc);
47			headerTransparentLg.addClass('header-transparent-on');
48			headerOpacityLg.addClass('header-opacity-on');
49			viewportLgBody.add(viewportLg).css("margin-top", "0");
50		}
51
52		noSticky.removeClass('sticky');
53		viewportSm.removeClass('sticky');
54		
55		headerTransparentLg.add(headerTransparentLgBody).add(headerOpacityLg).add(headerOpacityLgBody).add(viewportLgNostickyBody).add(viewportLgNosticky).css("margin-top", "0");
56
57		var logoCenterWidth = $('.logoCenter .logo img').width(),
58			menuCenterOneWidth = $('.center-menu-1 .navik-menu').width(),
59			menuCenterOneListMenu = $('.center-menu-1 .navik-menu > ul'),
60			menuCenterOneListWidth = menuCenterOneWidth - logoCenterWidth;
61
62		if ($(window).width() < 1200) {
63			menuCenterOneListMenu.outerWidth( menuCenterOneWidth );
64		} else {
65			menuCenterOneListMenu.outerWidth( menuCenterOneListWidth / 2 );
66		}
67
68		$('.logoCenter').width(logoCenterWidth);
69		
70	}
71
72	/* ========== Menu overlay transition ========== */
73	function overlayMenuTransition() {
74		var overlayMenuFirst = $('.navik-menu-overlay > ul > li:first-child'),
75			overlayMenuList = $('.navik-menu-overlay > ul > li');
76
77		overlayMenuFirst.attr('data-delay', '0');
78
79		overlayMenuList.each(function(){
80			var $this = $(this),
81				overlayMenuNext = $this.next('li'),
82				menuDataDelay = $this.attr('data-delay'),
83				menuDataDelayNext = parseInt(menuDataDelay) + parseInt('100');
84
85			overlayMenuNext.attr('data-delay', menuDataDelayNext);
86
87			$this.delay(menuDataDelay).queue(function(next) {
88				$(this).addClass("menuSlideIn");
89				next();
90			});
91		});
92	}
93
94	/* ========== Horizontal navigation menu ========== */
95	if ($('.navik-header').length) {
96
97		var navikHeader = $('.navik-header'),
98			navikHeaderHeight = navikHeader.height(),
99			logo = navikHeader.find('.logo'),
100			logoImg = logo.find('img'),
101//			logoSrc = logoImg.attr('src'),
102			logoClone = logo.clone(),
103//			mobileLogoSrc = logo.data('mobile-logo'),
104//			stickyLogoSrc = logo.data('sticky-logo'),
105			burgerMenu = navikHeader.find('.burger-menu'),
106			navikMenuListWrapper = $('.navik-menu > ul'),
107			navikMenuListDropdown = $('.navik-menu ul li:has(ul)'),
108			headerShadow = $('.navik-header.header-shadow'),
109			headerTransparent = $('.navik-header.header-transparent'),
110			headerOpacity = $('.navik-header.header-opacity'),
111			megaMenuFullwidthContainer = $('.mega-menu-fullwidth .mega-menu-container');
112
113		/* ========== Center menu 1 ========== */
114		$('.center-menu-1 .navik-menu > ul:first-child').after('<div class="logoCenter"></div>');
115		$('.logoCenter').html(logoClone);
116
117		/* ========== Mega menu fullwidth wrap container ========== */
118		megaMenuFullwidthContainer.each(function(){
119			$(this).children().wrapAll('<div class="mega-menu-fullwidth-container"></div>');
120		});
121
122		/* ========== Window resize ========== */
123		$(window).on("resize", function() {
124
125			var megaMenuContainer = $('.mega-menu-fullwidth-container');
126
127			if ($(window).width() < 1200) {
128//				logoImg.attr('src', mobileLogoSrc);
129				navikHeader.removeClass('viewport-lg');
130				navikHeader.addClass('viewport-sm');
131				headerTransparent.removeClass('header-transparent-on');
132				headerOpacity.removeClass('header-opacity-on');
133				megaMenuContainer.removeClass('container');
134
135			} else {
136
137//				logoImg.attr('src', logoSrc);
138				navikHeader.removeClass('viewport-sm');
139				navikHeader.addClass('viewport-lg');
140				headerTransparent.addClass('header-transparent-on');
141				headerOpacity.addClass('header-opacity-on');
142				megaMenuContainer.addClass('container');
143
144			}
145
146			stickyNav();
147
148		}).resize();
149
150		/* ========== Dropdown Menu Toggle ========== */
151		burgerMenu.on("click", function(){
152			$(this).toggleClass('menu-open');
153			navikMenuListWrapper.slideToggle(300);
154		});
155		
156		navikMenuListDropdown.each(function(){
157			$(this).append( '<span class="dropdown-plus"></span>' );
158			$(this).addClass('dropdown_menu');
159		});
160		
161		$('.dropdown-plus').on("click", function(){
162			$(this).prev('ul').slideToggle(300);
163			$(window).trigger('resize'); 
164			$('.mediaBoxes').mediaBoxes( 'resize' ); 
165			$(this).toggleClass('dropdown-open');
166		});
167		
168		$('.dropdown_menu a').append('<span></span>');
169
170		/* ========== Added header shadow ========== */
171		headerShadow.append('<div class="header-shadow-wrapper"></div>');
172
173		/* ========== Sticky on scroll ========== */
174		$(window).on("scroll", function() {
175			stickyNav();
176		}).scroll();
177
178		/* ========== Menu hover transition ========== */
179		var listMenuHover4 = $('.navik-menu.menu-hover-4 > ul > li > a');
180		listMenuHover4.append('<div class="hover-transition"></div>');
181
182	}
183
184	/* ========== Overlay navigation menu ========== */
185	if ($('.navik-header-overlay').length) {
186
187		var navikHeaderOverlay = $('.navik-header-overlay'),
188			navikMenuOverlay = $('.navik-menu-overlay'),
189			burgerMenuOverlay = navikHeaderOverlay.find('.burger-menu'),
190			lineMenuOverlay = navikHeaderOverlay.find('.line-menu'),
191			menuOverlayLogo = navikHeaderOverlay.find('.logo'),
192			overlayLogoClone = menuOverlayLogo.clone(),
193			menuWrapperLogoSrc = menuOverlayLogo.data('overlay-logo'),
194			menuOverlayListDropdown = $('.navik-menu-overlay > ul > li:has(ul)'),
195			menuOverlayLink = $('.navik-menu-overlay > ul > li > a'),
196			menuSlide = $('.navik-header-overlay.menu-slide'),
197			menuSlideSubmenuLink = menuSlide.find('.navik-menu-overlay > ul ul a'),
198			menuSlideSubmenuDropdown = menuSlide.find('.navik-menu-overlay > ul > li > ul li:has(ul)'),
199			menuSocialMedia = navikMenuOverlay.next('.menu-social-media'),
200			submenuVerticalListItem = $('.submenu-vertical > ul > li > ul li:has(ul)'),
201			submenuVerticalLink = $('.submenu-vertical > ul > li > ul a');
202
203		lineMenuOverlay.wrapAll('<span></span>');
204		menuOverlayLink.wrap('<div class="menu-overlay-link"></div>');
205		submenuVerticalLink.wrap('<div class="menu-overlay-link"></div>');
206		menuSlideSubmenuLink.wrap('<div class="menu-overlay-link"></div>');
207
208		/* ========== Submenu Toggle ========== */
209		menuOverlayListDropdown.each(function(){
210			var menuOverlayDropdownLink = $(this).children('.menu-overlay-link');
211			menuOverlayDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' );
212			$(this).addClass('overlay_dropdown_menu');
213		});
214
215		submenuVerticalListItem.each(function(){
216			var submenuVerticalDropdownLink = $(this).children('.menu-overlay-link');
217			submenuVerticalDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' );
218			$(this).addClass('overlay_dropdown_menu');
219		});
220
221		menuSlideSubmenuDropdown.each(function(){
222			var submenuVerticalDropdownLink = $(this).children('.menu-overlay-link');
223			submenuVerticalDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' );
224			$(this).addClass('overlay_dropdown_menu');
225		});
226
227		$('.overlay_dropdown_menu > ul').addClass('overlay-submenu-close');
228		
229		$('.overlay-dropdown-plus').on("click", function(){
230			var $thisParent = $(this).parent('.menu-overlay-link');
231			$thisParent.next('ul').slideToggle(300).toggleClass('overlay-submenu-close');
232			$(this).toggleClass('overlay-dropdown-open');
233		});
234
235		navikMenuOverlay.add(menuSocialMedia).wrapAll('<div class="nav-menu-wrapper"></div>');
236
237		var overlayNavMenuWrapper = $('.nav-menu-wrapper');
238
239		overlayNavMenuWrapper.prepend(overlayLogoClone);
240//		overlayNavMenuWrapper.find('.logo img').attr('src', menuWrapperLogoSrc);
241
242		var menuOverlayHover = $('.navik-menu-overlay > ul > .overlay_dropdown_menu > ul');
243
244		menuOverlayHover.each(function(){
245			$(this).on("mouseenter", function () {
246				$(this).parents("li").addClass("overlay-menu-hover");
247			});
248			$(this).on("mouseleave", function () {
249				$(this).parents("li").removeClass("overlay-menu-hover");
250			});
251		});
252
253		/* ========== Menu overlay open ========== */
254		burgerMenuOverlay.on("click", function(){
255
256			var overlayMenuList = $('.navik-menu-overlay > ul > li');
257
258			$(this).toggleClass('menu-open');
259			overlayNavMenuWrapper.toggleClass('overlay-menu-open');
260			overlayMenuList.removeClass("menuSlideIn");
261			
262			if ($(this).hasClass("menu-open")) {
263				overlayMenuTransition();
264				overlayMenuList.removeClass("menuSlideOut").addClass("menuFade");
265			}
266
267			if (!$(this).hasClass("menu-open")) {
268				overlayMenuList.addClass("menuSlideOut").removeClass("menuFade");
269			}
270
271		});
272
273		/* ========== Menu slide settings ========== */
274		var menuSlideNavWrapper = menuSlide.find('.nav-menu-wrapper'),
275			menuSlideNavLogo = menuSlideNavWrapper.find('.logo');
276
277		if (navikHeaderOverlay.hasClass('menu-slide')){
278			navikHeaderOverlay.removeClass('overlay-center-menu');
279		}
280
281		menuSlideNavLogo.remove();
282		menuSlideNavWrapper.after('<div class="slidemenu-bg-overlay"></div>');
283
284		$('.slidemenu-bg-overlay').on("click", function(){
285			menuSlideNavWrapper.removeClass('overlay-menu-open');
286			burgerMenuOverlay.removeClass('menu-open');
287		});
288
289	}
290
291	/* ========== Fixed sidebar menu ========== */
292	if ($('.navik-fixed-sidebar').length) {
293		var navikFixedSidebar = $('.navik-fixed-sidebar'),
294			navikMenuFixed = $('.navik-menu-fixed'),
295			navikSideContent = $('.navik-side-content'),
296			logoFixedSidebar = navikFixedSidebar.find('.logo'),
297			logoClone = logoFixedSidebar.clone(),
298			burgerMenuFixedSidebar = navikFixedSidebar.find('.burger-menu'),
299			burgerMenuDetach = burgerMenuFixedSidebar.detach(),
300			navikFixedDropdown = navikMenuFixed.find('li:has(ul)');
301
302		navikFixedSidebar.parent('body').addClass('body-fixed-sidebar');
303		navikFixedSidebar.after('<div class="fixedsidebar-bg-overlay"></div>').after(burgerMenuDetach);
304		navikSideContent.prepend(logoClone);
305
306		$('.navik-fixed-sidebar .logo, .navik-menu-fixed').wrapAll('<div class="fixed-menu-wrap"></div>');
307
308		var burgerMenuMove = navikFixedSidebar.next('.burger-menu'),
309			fixedSidebarlineMenu = burgerMenuMove.find('.line-menu');
310
311		fixedSidebarlineMenu.wrapAll('<span></span>');
312
313		/* ========== Side menu open on mobile ========== */
314		burgerMenuMove.on("click", function(){
315			$(this).toggleClass('menu-open');
316			navikFixedSidebar.toggleClass('fixed-sidebar-open');
317		});
318
319		$('.fixedsidebar-bg-overlay').on("click", function(){
320			navikFixedSidebar.removeClass('fixed-sidebar-open');
321			burgerMenuMove.removeClass('menu-open');
322		});
323
324		/* ========== Submenu collapse ========== */
325		navikFixedDropdown.each(function(){
326			$(this).append( '<span class="overlay-dropdown-plus"></span>' );
327		});
328
329		$('.overlay-dropdown-plus').on("click", function(){
330			$(this).prev('ul').slideToggle(300).toggleClass('submenu-collapse');
331			$(this).toggleClass('overlay-dropdown-open');
332		});
333	}
334
335	/* ========== Menu icon color ========== */
336	$('.navik-menu-icon').css('color', function () {
337		var iconColorAttr = $(this).data('fa-color');
338		return iconColorAttr;
339	});
340
341});
342

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.