1/** 2 Navik - HTML header navigation menu - v1.4.2 3 Copyright (c) 2020, 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() < 979) { 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() < 979) { 128 129 logoImg.attr('src', mobileLogoSrc); 130 navikHeader.removeClass('viewport-lg'); 131 navikHeader.addClass('viewport-sm'); 132 headerTransparent.removeClass('header-transparent-on'); 133 headerOpacity.removeClass('header-opacity-on'); 134 megaMenuContainer.removeClass('container'); 135 136 } else { 137 138 logoImg.attr('src', logoSrc); 139 navikHeader.removeClass('viewport-sm'); 140 navikHeader.addClass('viewport-sm'); 141 headerTransparent.addClass('header-transparent-on'); 142 headerOpacity.addClass('header-opacity-on'); 143 megaMenuContainer.addClass('container'); 144 145 } 146 147 stickyNav(); 148 149 }).resize(); 150 151 /* ========== Dropdown Menu Toggle ========== */ 152 burgerMenu.on("click", function(){ 153 $(this).toggleClass('menu-open'); 154 navikMenuListWrapper.slideToggle(300); 155 }); 156 157 navikMenuListDropdown.each(function(){ 158 $(this).append( '<span class="dropdown-plus"></span>' ); 159 $(this).addClass('dropdown_menu'); 160 }); 161 162 $('.dropdown-plus').on("click", function(){ 163 $(this).prev('ul').slideToggle(300); 164 $(this).toggleClass('dropdown-open'); 165 }); 166 167 $('.dropdown_menu a').append('<span></span>'); 168 169 /* ========== Added header shadow ========== */ 170 headerShadow.append('<div class="header-shadow-wrapper"></div>'); 171 172 /* ========== Sticky on scroll ========== */ 173 $(window).on("scroll", function() { 174 stickyNav(); 175 }).scroll(); 176 177 /* ========== Menu hover transition ========== */ 178 var listMenuHover4 = $('.navik-menu.menu-hover-4 > ul > li > a'); 179 listMenuHover4.append('<div class="hover-transition"></div>'); 180 181 } 182 183 /* ========== Overlay navigation menu ========== */ 184 if ($('.navik-header-overlay').length) { 185 186 var navikHeaderOverlay = $('.navik-header-overlay'), 187 navikMenuOverlay = $('.navik-menu-overlay'), 188 burgerMenuOverlay = navikHeaderOverlay.find('.burger-menu'), 189 lineMenuOverlay = navikHeaderOverlay.find('.line-menu'), 190 menuOverlayLogo = navikHeaderOverlay.find('.logo'), 191 overlayLogoClone = menuOverlayLogo.clone(), 192 menuWrapperLogoSrc = menuOverlayLogo.data('overlay-logo'), 193 menuOverlayListDropdown = $('.navik-menu-overlay > ul > li:has(ul)'), 194 menuOverlayLink = $('.navik-menu-overlay > ul > li > a'), 195 menuSlide = $('.navik-header-overlay.menu-slide'), 196 menuSlideSubmenuLink = menuSlide.find('.navik-menu-overlay > ul ul a'), 197 menuSlideSubmenuDropdown = menuSlide.find('.navik-menu-overlay > ul > li > ul li:has(ul)'), 198 menuSocialMedia = navikMenuOverlay.next('.menu-social-media'), 199 submenuVerticalListItem = $('.submenu-vertical > ul > li > ul li:has(ul)'), 200 submenuVerticalLink = $('.submenu-vertical > ul > li > ul a'); 201 202 lineMenuOverlay.wrapAll('<span></span>'); 203 menuOverlayLink.wrap('<div class="menu-overlay-link"></div>'); 204 submenuVerticalLink.wrap('<div class="menu-overlay-link"></div>'); 205 menuSlideSubmenuLink.wrap('<div class="menu-overlay-link"></div>'); 206 207 /* ========== Submenu Toggle ========== */ 208 menuOverlayListDropdown.each(function(){ 209 var menuOverlayDropdownLink = $(this).children('.menu-overlay-link'); 210 menuOverlayDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' ); 211 $(this).addClass('overlay_dropdown_menu'); 212 }); 213 214 submenuVerticalListItem.each(function(){ 215 var submenuVerticalDropdownLink = $(this).children('.menu-overlay-link'); 216 submenuVerticalDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' ); 217 $(this).addClass('overlay_dropdown_menu'); 218 }); 219 220 menuSlideSubmenuDropdown.each(function(){ 221 var submenuVerticalDropdownLink = $(this).children('.menu-overlay-link'); 222 submenuVerticalDropdownLink.prepend( '<span class="overlay-dropdown-plus"></span>' ); 223 $(this).addClass('overlay_dropdown_menu'); 224 }); 225 226 $('.overlay_dropdown_menu > ul').addClass('overlay-submenu-close'); 227 228 $('.overlay-dropdown-plus').on("click", function(){ 229 var $thisParent = $(this).parent('.menu-overlay-link'); 230 $thisParent.next('ul').slideToggle(300).toggleClass('overlay-submenu-close'); 231 $(this).toggleClass('overlay-dropdown-open'); 232 }); 233 234 navikMenuOverlay.add(menuSocialMedia).wrapAll('<div class="nav-menu-wrapper"></div>'); 235 236 var overlayNavMenuWrapper = $('.nav-menu-wrapper'); 237 238 overlayNavMenuWrapper.prepend(overlayLogoClone); 239 overlayNavMenuWrapper.find('.logo img').attr('src', menuWrapperLogoSrc); 240 241 var menuOverlayHover = $('.navik-menu-overlay > ul > .overlay_dropdown_menu > ul'); 242 243 menuOverlayHover.each(function(){ 244 $(this).on("mouseenter", function () { 245 $(this).parents("li").addClass("overlay-menu-hover"); 246 }); 247 $(this).on("mouseleave", function () { 248 $(this).parents("li").removeClass("overlay-menu-hover"); 249 }); 250 }); 251 252 /* ========== Menu overlay open ========== */ 253 burgerMenuOverlay.on("click", function(){ 254 255 var overlayMenuList = $('.navik-menu-overlay > ul > li'); 256 257 $(this).toggleClass('menu-open'); 258 overlayNavMenuWrapper.toggleClass('overlay-menu-open'); 259 overlayMenuList.removeClass("menuSlideIn"); 260 261 if ($(this).hasClass("menu-open")) { 262 overlayMenuTransition(); 263 overlayMenuList.removeClass("menuSlideOut").addClass("menuFade"); 264 } 265 266 if (!$(this).hasClass("menu-open")) { 267 overlayMenuList.addClass("menuSlideOut").removeClass("menuFade"); 268 } 269 270 }); 271 272 /* ========== Menu slide settings ========== */ 273 var menuSlideNavWrapper = menuSlide.find('.nav-menu-wrapper'), 274 menuSlideNavLogo = menuSlideNavWrapper.find('.logo'); 275 276 if (navikHeaderOverlay.hasClass('menu-slide')){ 277 navikHeaderOverlay.removeClass('overlay-center-menu'); 278 } 279 280 menuSlideNavLogo.remove(); 281 menuSlideNavWrapper.after('<div class="slidemenu-bg-overlay"></div>'); 282 283 $('.slidemenu-bg-overlay').on("click", function(){ 284 menuSlideNavWrapper.removeClass('overlay-menu-open'); 285 burgerMenuOverlay.removeClass('menu-open'); 286 }); 287 288 } 289 290 /* ========== Fixed sidebar menu ========== */ 291 if ($('.navik-fixed-sidebar').length) { 292 var navikFixedSidebar = $('.navik-fixed-sidebar'), 293 navikMenuFixed = $('.navik-menu-fixed'), 294 navikSideContent = $('.navik-side-content'), 295 logoFixedSidebar = navikFixedSidebar.find('.logo'), 296 logoClone = logoFixedSidebar.clone(), 297 burgerMenuFixedSidebar = navikFixedSidebar.find('.burger-menu'), 298 burgerMenuDetach = burgerMenuFixedSidebar.detach(), 299 navikFixedDropdown = navikMenuFixed.find('li:has(ul)'); 300 301 navikFixedSidebar.parent('body').addClass('body-fixed-sidebar'); 302 navikFixedSidebar.after('<div class="fixedsidebar-bg-overlay"></div>').after(burgerMenuDetach);
303 navikSideContent.prepend(logoClone); 304 305 $('.navik-fixed-sidebar .logo, .navik-menu-fixed').wrapAll('<div class="fixed-menu-wrap"></div>'); 306 307 var burgerMenuMove = navikFixedSidebar.next('.burger-menu'), 308 fixedSidebarlineMenu = burgerMenuMove.find('.line-menu'); 309 310 fixedSidebarlineMenu.wrapAll('<span></span>'); 311 312 /* ========== Side menu open on mobile ========== */ 313 burgerMenuMove.on("click", function(){ 314 $(this).toggleClass('menu-open'); 315 navikFixedSidebar.toggleClass('fixed-sidebar-open'); 316 }); 317 318 $('.fixedsidebar-bg-overlay').on("click", function(){ 319 navikFixedSidebar.removeClass('fixed-sidebar-open'); 320 burgerMenuMove.removeClass('menu-open'); 321 }); 322 323 /* ========== Submenu collapse ========== */ 324 navikFixedDropdown.each(function(){ 325 $(this).append( '<span class="overlay-dropdown-plus"></span>' ); 326 }); 327 328 $('.overlay-dropdown-plus').on("click", function(){ 329 $(this).prev('ul').slideToggle(300).toggleClass('submenu-collapse'); 330 $(this).toggleClass('overlay-dropdown-open'); 331 }); 332 } 333 334 /* ========== Menu icon color ========== */ 335 $('.navik-menu-icon').css('color', function () { 336 var iconColorAttr = $(this).data('fa-color'); 337 return iconColorAttr; 338 }); 339 340});
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.