// ------------------------------------------------------------------------------ // // // Template name : Bootsnav - Multi Purpose Header // Categorie : Bootstrap Menu in CSS // Author : yuchen // Version : v.1.2 // Created : 2016-06-02 // Last update : 2021-03-02 // // ------------------------------------------------------------------------------ // (function ($) { "use strict"; var bootsnav = { initialize: function() { this.event(); this.hoverDropdown(); this.navbarSticky(); this.navbarScrollspy(); }, event : function(){ var getNav = $("nav.bootsnav"); var navSticky = getNav.hasClass("navbar-sticky"); if( navSticky ){ getNav.wrap("
"); } $(".bootsnav").addClass("on"); // ------------------------------------------------------------------------------ // // Navbar Mobile // ------------------------------------------------------------------------------ // if( getNav.hasClass("navbar-mobile")){ // Add Class to body $('.navbar-collapse-box').on('shown.bs.collapse', function() { $('.model-box').css('height','100%'); $("body").addClass("side-right"); }); $('.navbar-collapse-box').on('hide.bs.collapse', function() { $('.model-box').css('height','0'); $("body").removeClass("side-right"); }); $(window).on("resize", function(){ $("body").removeClass("side-right"); }); } }, // ------------------------------------------------------------------------------ // // Change dropdown to hover on dekstop // ------------------------------------------------------------------------------ // hoverDropdown : function(){ var getNav = $("nav.bootsnav"), getWindow = $(window).width(), getHeight = $(window).height(), getIn = getNav.find("ul.nav").data("in"), getOut = getNav.find("ul.nav").data("out"); if( getWindow < 1025 ){ // Height of scroll navigation sidebar $(".scroller").css("height", "auto"); // Disable mouseenter event $("nav.bootsnav ul.nav").find("li.dropdown").off("mouseenter"); $("nav.bootsnav ul.nav").find("li.dropdown").off("mouseleave"); $("nav.bootsnav ul.nav").find(".title").off("mouseenter"); $("nav.bootsnav ul.nav").off("mouseleave"); $(".navbar-collapse-box").removeClass("animated"); // Enable click event $("nav.bootsnav ul.nav").each(function(){ // $(".dropdown-menu", this).addClass("animated"); $(".dropdown-menu", this).removeClass(getOut); // Dropdown Fade Toggle $("a.dropdown-toggle", this).off('click'); $("a.dropdown-toggle", this).on('click', function (e) { e.stopPropagation(); if(e.target.tagName!='A'){ return false; } }); $("a .iconfont", this).on('click', function (e) { e.stopPropagation(); if(!$(this).parent().parent().parent().hasClass('dropdown-menu')){ $('li.dropdown').find(".dropdown-menu").fadeOut(); } $(this).closest("li.dropdown").find(".dropdown-menu").first().stop().fadeToggle().toggleClass(getIn); $(this).closest("li.dropdown").first().toggleClass("on"); if(e.target.tagName!='A'){ return false; } }); // Hidden dropdown action $('li.dropdown', this).each(function () { $(this).find(".dropdown-menu").stop().fadeOut(); $(this).on('hidden.bs.dropdown', function () { $(this).find(".dropdown-menu").stop().fadeOut(); }); return false; }); }); // Hidden dropdown var cleanOpen = function(){ $('li.dropdown', this).removeClass("on"); $(".dropdown-menu", this).stop().fadeOut(); $(".dropdown-menu", this).removeClass(getIn); $(".col-menu", this).removeClass("on"); $(".col-menu .content", this).stop().fadeOut(); $(".col-menu .content", this).removeClass(getIn); } // Hidden om mouse leave $("nav.bootsnav").on("mouseleave", function(){ cleanOpen(); }); // Enable click atribute navigation // Toggle Bars $(".navbar-toggle").each(function(){ $(this).off("click"); $(this).on("click", function(){ $(".fa", this).toggleClass("fa-bars"); $(".fa", this).toggleClass("fa-times"); cleanOpen(); }); }); }else if( getWindow > 1024 ){ // Height of scroll navigation sidebar $(".scroller").css("height", getHeight + "px"); // Navbar Sidebar if( getNav.hasClass("navbar-sidebar")){ // Hover effect Sidebar Menu $("nav.bootsnav ul.nav").each(function(){ $("a.dropdown-toggle", this).off('click'); $("a.dropdown-toggle", this).on('click', function (e) { e.stopPropagation(); }); $(".dropdown-menu", this).addClass("animated"); $("li.dropdown", this).on("mouseenter", function(){ $(".dropdown-menu", this).eq(0).removeClass(getOut); $(".dropdown-menu", this).eq(0).stop().fadeIn().addClass(getIn); $(this).addClass("on"); return false; }); $(".col-menu").each(function(){ $(".content", this).addClass("animated"); $(".title", this).on("mouseenter", function(){ $(this).closest(".col-menu").find(".content").stop().fadeIn().addClass(getIn); $(this).closest(".col-menu").addClass("on"); return false; }); }); $(this).on("mouseleave", function(){ $(".dropdown-menu", this).stop().removeClass(getIn); $(".dropdown-menu", this).stop().addClass(getOut).fadeOut(); $(".col-menu", this).find(".content").stop().fadeOut().removeClass(getIn); $(".col-menu", this).removeClass("on"); $("li.dropdown", this).removeClass("on"); return false; }); }); }else{ // Hover effect Default Menu $("nav.bootsnav ul.nav").each(function(){ $("a.dropdown-toggle", this).off('click'); $("a.dropdown-toggle", this).on('click', function (e) { e.stopPropagation(); }); $(".dropdown-menu", this).addClass("animated"); $("li.dropdown", this).on("mouseenter", function(){ $(".dropdown-menu", this).eq(0).removeClass(getOut); $(".dropdown-menu", this).eq(0).stop().fadeIn().addClass(getIn); $(this).addClass("on"); return false; }); $("li.dropdown", this).on("mouseleave", function(){ $(".dropdown-menu", this).eq(0).removeClass(getIn); $(".dropdown-menu", this).eq(0).stop().fadeOut().addClass(getOut); $(this).removeClass("on"); }); $(this).on("mouseleave", function(){ $(".dropdown-menu", this).removeClass(getIn); $(".dropdown-menu", this).eq(0).stop().fadeOut().addClass(getOut); $("li.dropdown", this).removeClass("on"); return false; }); }); } } }, // ------------------------------------------------------------------------------ // // Navbar Sticky // ------------------------------------------------------------------------------ // navbarSticky : function(){ var getNav = $("nav.bootsnav"), navSticky = getNav.hasClass("navbar-sticky"); if( navSticky ){ // Set Height Navigation var getHeight = getNav.height(); $(".wrap-sticky").height(getHeight); // Windown on scroll var getOffset = $(".wrap-sticky").offset().top; $(window).on("scroll", function(){ var scrollTop = $(window).scrollTop(); if(scrollTop > getOffset){ getNav.addClass("sticked"); }else { getNav.removeClass("sticked"); } }); } }, navbarScrollspy : function(){ var navScrollSpy = $(".navbar-scrollspy"), $body = $('body'), getNav = $('nav.bootsnav'), offset = getNav.outerHeight(); if( navScrollSpy.length ){ $body.scrollspy({target: '.bootsnav', offset: offset }); // Animation Scrollspy $('.scroll').on('click', function(event) { event.preventDefault(); // Active link $('.scroll').removeClass("active"); $(this).addClass("active"); // Remove navbar collapse $(".navbar-collapse-box").removeClass("in"); // Toggle Bars $(".navbar-toggle").each(function(){ $(".fa", this).removeClass("fa-times"); $(".fa", this).addClass("fa-bars"); }); // Scroll var scrollTop = $(window).scrollTop(), $anchor = $(this).find('a'), $section = $($anchor.attr('href')).offset().top, $window = $(window).width(), $minusDesktop = getNav.data("minus-value-desktop"), $minusMobile = getNav.data("minus-value-mobile"), $speed = getNav.data("speed"); //992 if( $window > 1024 ){ var $position = $section - $minusDesktop; }else{ var $position = $section - $minusMobile; } $('html, body').stop().animate({ scrollTop: $position }, $speed); }); // Activate Navigation var fixSpy = function() { var data = $body.data('bs.scrollspy'); if (data) { offset = getNav.outerHeight(); data.options.offset = offset; $body.data('bs.scrollspy', data); $body.scrollspy('refresh'); } } // Activate Navigation on resize var resizeTimer; $(window).on('resize', function() { clearTimeout(resizeTimer); var resizeTimer = setTimeout(fixSpy, 200); }); } } }; // Initialize $(document).ready(function(){ bootsnav.initialize(); }); // Reset on resize $(window).on("resize", function(){ // bootsnav.hoverDropdown(); setTimeout(function(){ bootsnav.navbarSticky(); }, 500); // Toggle Bars $(".navbar-toggle").each(function(){ $(".fa", this).removeClass("fa-times"); $(".fa", this).addClass("fa-bars"); $(this).removeClass("fixed"); }); $(".navbar-collapse-box").removeClass("in"); $(".navbar-collapse-box").removeClass("on"); $(".navbar-collapse-box").removeClass("bounceIn"); }); $('.menu_item_text').click(function (){ if($(this).parent().attr('href')){ window.location.href = $(this).parent().attr('href') } }); }(jQuery));