Коллеги, Молю помогите. Имею большой опыт. Но кажется с простой задачей справится не могу. -Имеется в углу экрана кнопка гамбургер. -При нажатии на которую открывается меню. Работало просто. Делаю любой тег в виде кнопки, и вешаю на него :HOVER. Меню же открывается после наведения на тег в виде кнопки. То теперь надо усложнить задачу. надо чтобы после открытия меню тег в виде кнопки превращался в кнопку с крестиком. Т.е. надо так чтобы после срабатывания :HOVER, тег само собой меняет иконку, но при этом чтобы при нажатии на иконку меню закрывалось. HTML: <div class=menu> <div class=icon> <ul> <li><a>Пункт меню 1 <li><a>Пункт меню 2 </ul> </div> </div> Код (CSS): .icon{ width: 40px; height: 40px; position: relative; } .icon ul{ position: absolute; top: 100%; display: none; } .icon:hover{ display: block; } Как видно простая схема открывания меню при наведении. . Но как сделать чтобы изначальная иконка меняла свое поведение после клика на открытие меню? Кликабельность иконки все равно из чего делать, из внутреннего DIV или из внешнего значения не имеет.
Добавлено: хочу сделать меню для смартфона https://gesor.ru/index.php Там слева открывается гамбургер на маленьком экране . суть в том что сейчас клик пальцем по экрану в пустое не активное место расценивается как ховер. ну в общем при первом клике пальцем на гамбургере открывается меню. А при втором клике на гамбургере меню должно закрыватся
Самый простой вариант HTML: <div id="menu">клик по гамбургеру <div id="icon" class="hidden"> <ul> <li><a>Пункт меню 1 <li><a>Пункт меню 2 </ul> </div> </div> Код (CSS): .hidden{ display: none; } Код (Javascript): let elem = document.querySelector('#icon'); let menu = document.querySelector('#menu'); menu.addEventListener('click', function(){ elem.classList.toggle('hidden'); });