Кнопка переключения Push menu

#javascript #html

#javascript #HTML

Вопрос:

Я не очень разбираюсь в JavaScript, поэтому теперь мне нужна помощь. Я использую нажимное меню, которое появляется слева на веб-сайте. Прямо сейчас код JS использует одну кнопку для открытия меню (onclick =»openNav ()»), а другую — для его закрытия (onclick =»closeNav ()»).

Вместо этого я хочу использовать кнопку переключения (гамбургера) для открытия и закрытия, но, к сожалению, я не могу понять, как настроить код JS — сохраняя изменение непрозрачности и функцию slide / push.

Помочь?

JS:

 function openNav() {
   document.getElementById("mySidenav").style.width = "150px";
   document.getElementById("main2").style.marginLeft = "150px";
   document.body.style.backgroundColor = "rgba(0, 0, 0, 0.1)";
}


function closeNav() {
   document.getElementById("mySidenav").style.width = "0";
   document.getElementById(”content”).style.marginLeft= "0";
   document.body.style.backgroundColor = "white";
}
  

HTML:

 <div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">CLOSE</a>
  <a href=”#anchor01”>Anchor 01</a>
  <a href=”#anchor02”>Anchor 02</a>
</div>

<div id=”content”>
<div id="main">
<span style="font-size:20px;cursor:pointer" onclick="openNav()">amp;#9776;</span>
</div>
</div>
  

Ответ №1:

попробуйте что-то вроде этого

 function openNav() {
   document.getElementById("mySidenav").style.width = "150px";
   document.getElementById("main2").style.marginLeft = "150px";
   document.body.style.backgroundColor = "rgba(0, 0, 0, 0.1)";
}


function closeNav() {
   document.getElementById("mySidenav").style.width = "0";
   document.getElementById(”content”).style.marginLeft= "0";
   document.body.style.backgroundColor = "white";
}

var clickCount = 0;

$('#togglebutton').click(function(){ //replace the id with the toggle button id
     if(clickCount%2==0){
         openNav();
     }else{
         closeNav();
     }
     clickCount  ;
});
  

Здесь я использую счетчик, который увеличивается при каждом нажатии. Если счетчик нечетный, он должен быть открыт, в противном случае закрыт.

Комментарии:

1. Спасибо! Работает как шарм.

Ответ №2:

JS:

 $(document).ready(function() {
 $("#toggle").click(function() {
    $("#mySidenav").toggleClass("active");
  if($("#mySidenav").hasClass("active")) {
    $("mySidenav").css("width","150px");
    $("main2").css("margin-left", "150px");
    $("body").css("background-color","rgba(0, 0, 0, 0.1)");
  }
  else {
    $("mySidenav").css("width","0px");
    $("main2").css("margin-left", "0px");
    $("body").css("background-color","white");

  }
 })
})
  

HTML :

 <div id="mySidenav" class="sidenav">
   <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">CLOSE</a>
   <a href=”#anchor01”>Anchor 01</a>
   <a href=”#anchor02”>Anchor 02</a>
</div>

<div id=”content”>
   <div id="main">
     <span style="font-size:20px;cursor:pointer" onclick="openNav()">amp;#9776;</span>
  </div>
</div>
<div id="toggle">Toggle</div>