140 lines
4.3 KiB
JavaScript
140 lines
4.3 KiB
JavaScript
/*
|
|
* Theme Name: feather Lite
|
|
*/
|
|
|
|
/*----------------------------------------------------
|
|
/* Responsive Navigation
|
|
/*--------------------------------------------------*/
|
|
jQuery(document)
|
|
.ready(function($) {
|
|
$(".primary-navigation").append('<div id="mobile-menu-overlay" />');
|
|
|
|
$(".toggle-mobile-menu").on("click", function(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
e.stopImmediatePropagation();
|
|
clearTimeout(awaitMenu);
|
|
awaitMenu = setTimeout(function() {
|
|
toggleMobileMenu();
|
|
}, 200);
|
|
});
|
|
|
|
$(".toggle-mobile-menu").focusout(function(e) {
|
|
if(!menuIsOpen){
|
|
$("#page").attr("tabindex",-1).focus();
|
|
}
|
|
});
|
|
|
|
|
|
$("#accessibility-close-mobile-menu").focusin(e => {
|
|
menuIsOpen = false;
|
|
jQuery("body").removeClass("mobile-menu-active");
|
|
jQuery("html").removeClass("noscroll");
|
|
jQuery("#mobile-menu-overlay").fadeOut();
|
|
jQuery(".toggle-mobile-menu").focus();
|
|
});
|
|
|
|
var awaitMenu;
|
|
var menuIsOpen = false;
|
|
function toggleMobileMenu() {
|
|
$("body").toggleClass("mobile-menu-active");
|
|
|
|
if ($("body").hasClass("mobile-menu-active")) {
|
|
menuIsOpen = true;
|
|
if ($(document).height() > $(window).height()) {
|
|
var scrollTop = $("html").scrollTop()
|
|
? $("html").scrollTop()
|
|
: $("body").scrollTop();
|
|
$("html")
|
|
.addClass("noscroll")
|
|
.css("top", -scrollTop);
|
|
}
|
|
$("#mobile-menu-overlay").fadeIn();
|
|
} else {
|
|
var scrollTop = parseInt($("html").css("top"));
|
|
$("html").removeClass("noscroll");
|
|
$("html,body").scrollTop(-scrollTop);
|
|
$("#mobile-menu-overlay").fadeOut();
|
|
menuIsOpen = false;
|
|
}
|
|
}
|
|
})
|
|
.on("click", function(event) {
|
|
var $target = jQuery(event.target);
|
|
if (
|
|
($target.hasClass("feather-icon") &&
|
|
$target.parent().hasClass("toggle-caret")) ||
|
|
$target.hasClass("toggle-caret")
|
|
) {
|
|
// allow clicking on menu toggles
|
|
return;
|
|
}
|
|
jQuery("body").removeClass("mobile-menu-active");
|
|
jQuery("html").removeClass("noscroll");
|
|
jQuery("#mobile-menu-overlay").fadeOut();
|
|
});
|
|
|
|
/*----------------------------------------------------
|
|
/* Dropdown menu
|
|
/* ------------------------------------------------- */
|
|
jQuery(document).ready(function($) {
|
|
|
|
function feathermagazineDropdownMenu() {
|
|
var wWidth = $(window).width();
|
|
if(wWidth > 865) {
|
|
$('#navigation ul.sub-menu, #navigation ul.children').hide();
|
|
var timer;
|
|
var delay = 100;
|
|
$('#navigation li').hover(
|
|
function() {
|
|
var $this = $(this);
|
|
timer = setTimeout(function() {
|
|
$this.children('ul.sub-menu, ul.children').slideDown('fast');
|
|
}, delay);
|
|
|
|
},
|
|
function() {
|
|
$(this).children('ul.sub-menu, ul.children').hide();
|
|
clearTimeout(timer);
|
|
}
|
|
);
|
|
} else {
|
|
$('#navigation li').unbind('hover');
|
|
$('#navigation li.active > ul.sub-menu, #navigation li.active > ul.children').show();
|
|
}
|
|
}
|
|
|
|
feathermagazineDropdownMenu();
|
|
|
|
$(window).resize(function() {
|
|
feathermagazineDropdownMenu();
|
|
});
|
|
});
|
|
|
|
/*---------------------------------------------------
|
|
/* Vertical menus toggles
|
|
/* -------------------------------------------------*/
|
|
jQuery(document).ready(function($) {
|
|
|
|
$('.widget_nav_menu, #navigation .menu').addClass('toggle-menu');
|
|
$('.toggle-menu ul.sub-menu, .toggle-menu ul.children').addClass('toggle-submenu');
|
|
$('.toggle-menu ul.sub-menu').parent().addClass('toggle-menu-item-parent');
|
|
|
|
$('.toggle-menu .toggle-menu-item-parent').append('<span class="toggle-caret"><i class="feather-icon icon-plus"></i></span>');
|
|
|
|
$('.toggle-caret').click(function(e) {
|
|
e.preventDefault();
|
|
$(this).parent().toggleClass('active').children('.toggle-submenu').slideToggle('fast');
|
|
});
|
|
});
|
|
|
|
/*----------------------------------------------------
|
|
/* Back to top smooth scrolling
|
|
/*--------------------------------------------------*/
|
|
jQuery(document).ready(function($) {
|
|
jQuery('a[href="#top"]').click(function(){
|
|
jQuery('html, body').animate({scrollTop:0}, 'slow');
|
|
return false;
|
|
});
|
|
});
|