@Alexey10

Усовершенствовать скрипт гамбургера?

Ребят, всем привет))
Есть код гамбургера:
$('.menuToggle').on('click', function() {
$('ul.menu').slideToggle(300, function(){
if( $(this).css('display') === "none"){
$(this).removeAttr('style');
}
});
});
Как сделать так, чтобы меню закрывалось не только по клику по гамбургеру, но и по всему остальному (кроме самого меню) ? Всем спасибо))
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
@Alexey10 Автор вопроса
Ребят, вопрос решил. Если кому-то нужно, вот код
$('.menuToggle').on('click', function() {
$('ul.menu').slideToggle(300, function(){
if( $(this).css('display') === "none"){
$(this).removeAttr('style');
}
$(document).mouseup(function(e) {
var $target = $(e.target);
if ($target.closest("ul.menu").length == 0 && $target.closest(".menuToggle").length == 0) {
$('ul.menu').slideUp(300, function(){
if( $(this).css('display') === "none"){
$(this).removeAttr('style');
}
});
}
});
});



});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sonterix
@sonterix
при появлении меню сделайте так:
<div id="wrapper-menu"></div>
<div id="menu">Ваше меню</div>

для wrapper-menu z-index: 1 (так же высота и ширина должна быть 100%)
для menu z-index: 2

Получается, что "под" вашем меню есть подкладка и вы можете отслеживать клики по ней
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы