Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Кнопка гамбургер разворачивается и сворачивается по клику в любом месте (https://javascript.ru/forum/dom-window/77179-knopka-gamburger-razvorachivaetsya-i-svorachivaetsya-po-kliku-v-lyubom-meste.html)

Elenajs 03.04.2019 08:11

Кнопка гамбургер разворачивается и сворачивается по клику в любом месте
 
Я привязала кнопку гамбургер к меню. Сейчас меню открывается после клика по кнопке и закрывается также и закрывается после клика по экрану сворачиваясь обратно в полоски (гамбургер) что я и хотела, остался последний штрих - отключить кнопку от взаимодействия с экраном когда меню закрыто. Кнопка разворачивается и сворачивается по клику в любом месте, что можно добавить в код ниже, чтобы этого не происходило?

$(document).ready(function () {
$(".hs-menubar").hsMenu(); 
$(".hamburger").click(function(){
$(this).toggleClass("is-active");
});
}); 

$(document).click(function(event) { 
$target = $(event.target);
if(!$target.closest('.hamburger').length && 
$('.hamburger').toggleClass("is-active"));
});

рони 03.04.2019 10:47

Elenajs,
$(document).click(function(event) {
 $target = $(event.target);
 if(!$target.closest('.hamburger').length &&
 $('.hamburger').is(".is-active")) $('.hamburger').removeClass("is-active");
 })


Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Elenajs 03.04.2019 11:34

Теперь меню закрывается после клика по экрану а кнопка не сворачивается обратно в полоски, а нужно чтобы свернулась закрыв меню, а после закрытия меню не анимировала когда кликаешь по экрану, когда меню закрыто.

рони 03.04.2019 12:48

Elenajs,
$(document).click(function(event) {
 $target = $(event.target);
 if(!$target.closest('.hamburger').length &&
 $('.hamburger').is(".is-active")) $('.hamburger').trigger("click");
 })

Elenajs 03.04.2019 13:08

Тоже самое что и с первым вариантом, кнопка не сворачивается обратно в полоски. Может нужно добавить условие на проверку закрытости меню при клике в этот код ? Только я не знаю какой
$(document).click(function(event) { 
$target = $(event.target);
if(!$target.closest('.hamburger').length && 
$('.hamburger').toggleClass("is-active"));
});

рони 03.04.2019 13:27

Elenajs,
без макета можно только гадать

рони 03.04.2019 13:29

Elenajs,
$('.hamburger').is(".точку пропустил is-active"))

Elenajs 03.04.2019 21:13

Вот тут наглядный пример (макет) https://jsfiddle.net/mqtbLxsz/
как видите кнопка анимирует если кликать по экрану.

рони 03.04.2019 21:58

Elenajs,
код проверяли из поста #4 ?
https://jsfiddle.net/ty7pdfr6/

Elenajs 03.04.2019 22:13

Все работает как надо, спасибо большое!


Часовой пояс GMT +3, время: 08:48.