Menu

by Svetlana Pavlova

HTML

<ul class="list_1">
  <li>
    <button class="accordion">Элемент 1</button>
    <div class="panel">
      <a href="#">Элемент 1_1</a><br>
		  <a href="#">Элемент 1_2</a>
    </div>
  </li>
  <li>
    <button class="accordion">Элемент 2</button>
    <div class="panel">
      <a href="#">Элемент 2_1</a><br>
		  <a href="#">Элемент 2_2</a>
    </div>
  </li>
 </ul>

CSS

button.accordion {
    cursor: pointer;
    padding: 18px;
    width: 100%;
    border: none;
    text-align: left;
    outline: none;
    font-size: 15px;
    transition: 0.4s;
}

button.accordion.active, button.accordion:hover {
    background-color: #ddd;
}

div.panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
}

JavaScript

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
  acc[i].onclick = function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight){
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    } 
  }
}