Для реализации функциональности раскрытия подменю в JavaScript, можно воспользоваться различными подходами и методами. Вот один из примеров, который позволит вам создать раскрывающееся подменю:
1. Структура HTML:
<nav> <ul> <li><a href="#">Главная</a></li> <li><a href="#">О компании</a> <ul class="submenu"> <li><a href="#">История</a></li> <li><a href="#">Ценности</a></li> <li><a href="#">Команда</a></li> </ul> </li> <li><a href="#">Услуги</a></li> <li><a href="#">Контакты</a></li> </ul> </nav>
2. CSS стилизация:
nav ul { list-style: none; margin: 0; padding: 0; } nav ul li { display: inline-block; position: relative; } nav ul li a { display: block; padding: 10px; text-decoration: none; color: #000; } nav ul li:hover > .submenu { display: block; } nav ul .submenu { display: none; position: absolute; top: 100%; left: 0; background-color: #fff; border: 1px solid #ccc; } nav ul .submenu li { display: block; }
3. JavaScript код:
document.addEventListener("DOMContentLoaded", function() { var submenus = document.querySelectorAll(".submenu"); for (var i = 0; i < submenus.length; i++) { submenus[i].parentNode.addEventListener("mouseover", function() { this.querySelector(".submenu").style.display = "block"; }); submenus[i].parentNode.addEventListener("mouseout", function() { this.querySelector(".submenu").style.display = "none"; }); } });
В данном коде мы сначала получаем список всех элементов с классом "submenu" и затем добавляем к ним обработчики событий. При наведении мыши на элемент родителя, мы изменяем стиль дочернего элемента с классом "submenu", устанавливая его свойство "display" в значение "block", и при уходе курсора мыши, стиль возвращается к значению "none", скрывая подменю.
Помимо этой реализации, есть и другие подходы, которые могут использоваться для создания раскрывающегося подменю в JavaScript. Все зависит от ваших потребностей и требований.