Кнопка гамбургер разворачивается и сворачивается по клику в любом месте
Я привязала кнопку гамбургер к меню. Сейчас меню открывается после клика по кнопке и закрывается также и закрывается после клика по экрану сворачиваясь обратно в полоски (гамбургер) что я и хотела, остался последний штрих - отключить кнопку от взаимодействия с экраном когда меню закрыто. Кнопка разворачивается и сворачивается по клику в любом месте, что можно добавить в код ниже, чтобы этого не происходило?
$(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")); }); |
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,
$(document).click(function(event) { $target = $(event.target); if(!$target.closest('.hamburger').length && $('.hamburger').is(".is-active")) $('.hamburger').trigger("click"); }) |
Тоже самое что и с первым вариантом, кнопка не сворачивается обратно в полоски. Может нужно добавить условие на проверку закрытости меню при клике в этот код ? Только я не знаю какой
$(document).click(function(event) { $target = $(event.target); if(!$target.closest('.hamburger').length && $('.hamburger').toggleClass("is-active")); }); |
Elenajs,
без макета можно только гадать |
Elenajs,
$('.hamburger').is(".точку пропустил is-active")) |
Вот тут наглядный пример (макет) https://jsfiddle.net/mqtbLxsz/
как видите кнопка анимирует если кликать по экрану. |
|
Все работает как надо, спасибо большое!
|
Часовой пояс GMT +3, время: 08:48. |