Напишем выпадающее меню в JavaScript или его еще называют dropdown menu. Этот код устанавливает прослушиватель событий на кнопке раскрывающегося списка, которая переключает класс show в раскрывающемся меню. Он также устанавливает прослушиватель для объекта окна, который закрывает раскрывающееся меню, если пользователь щелкает за его пределами.

Пример, который мы сделаем:

HTML:

<div class="dropdown">
  <button class="dropdown-button">Menu</button>
  <ul class="dropdown-menu">
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
  </ul>
</div>

CSS:

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-button {
  background-color: lightgray;
  color: black;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  display: none;
  background-color: lightgray;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-menu.show {
  display: block;
}

.dropdown-menu a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-menu a:hover {
  background-color: gray;
}

JavaScript:

const dropdownButton = document.querySelector(".dropdown-button");
const dropdownMenu = document.querySelector(".dropdown-menu");

dropdownButton.addEventListener("click", function () {
  dropdownMenu.classList.toggle("show");
});

// Закрываем раскрывающееся меню, если пользователь щелкнет за его пределами.
window.addEventListener("click", function (event) {
  if (!event.target.matches(".dropdown-button")) {
    dropdownMenu.classList.remove("show");
  }
});
 

Комментарии

0

Без регистрации и смс