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.