Всем привет!
Есть следующая функция для меню:
$(window).bind('resize', function(){
if ($(window).width() < 450) {
$('.header').removeClass('flex');
$('body').append('<div class="overlay"></div>');
$('.logo, .contacts, .nav').addClass('fadeout');
$('.fadeout').css('display','none');
$('.nav').css('z-index','9');
$('.btn-nav').on('click', function() {
if ($('.fadeout, .overlay').css("display") == "none") {
$('.fadeout').fadeIn(200);
$('.overlay').fadeIn(200);
$('.btn-nav').css('background','url(img/btn-nav-active.png) top left no-repeat');
}
else {
$('.overlay').fadeOut(200);
$('.fadeout').fadeOut(200);
$('.btn-nav').css('background','url(img/btn-nav.png) top left no-repeat');
}
});
$(('a.nav-link')).on('click touch', function() {
$('.overlay, .fadeout').fadeOut();
$('.btn-nav').css('background','url(img/btn-nav.png) top left no-repeat');
});
$('body').on('click', '.overlay', function(event) {
event.preventDefault();
$('.overlay, .fadeout').fadeOut(200);
$('.btn-nav').css('background','url(img/btn-nav.png) top left no-repeat');
});
}
else {
if ($(window).width() > 450) {
$('.header').addClass('flex');
$('.logo, .contacts').css('display','block');
$('.nav').css('display','flex');
$('.logo, .contacts, .nav').removeClass('fadeout');
$('.overlay').remove();
}
}
}).trigger('resize');
Все отлично работает при первой загрузке страницы на смартфоне, то есть пока не был сделан ресайз окна (поворот экрана на смарфтоне или же включение режима адаптива в режиме разработчика).
Если убрать
"else {
$('.overlay').fadeOut(200);
$('.fadeout').fadeOut(200);
$('.btn-nav').css('background', 'url(img/btn-nav.png) top left no-repeat');
}
то все хорошо работает, но меню, естественно, будет закрываться только при клике на фон и ссылки, а надо, чтобы еще закрывалось при клике на кнопку меню.
Помогите, пожалуйста, разобраться, что не так делаю.
На jsfiddle все кидать проблематично, вот ссылка на тестовый хост с сайтом:
клик
Кстати, также интересно почему при ресайзе он создает мне сразу два div с оверлеем, хотя в скрипте добавляется он один раз.