我想我的菜单关闭时,任何链接被点击,当我点击菜单区以外的相同,我尝试了不同的方式,但不成功,你能帮助我吗?我试图使用javascript,但结果失败了,我仍然是一个初学者,所以我有麻烦。
- 苏丹**
const btnMobile = document.getElementById('btn-mobile');
function toggleMenu(event) {
if (event.type === 'touchstart') event.preventDefault();
const nav = document.getElementById('nav');
nav.classList.toggle('active');
const active = nav.classList.contains('active');
event.currentTarget.setAttribute('aria-expanded', active);
if (active) {
event.currentTarget.setAttribute('aria-label', 'Fechar Menu');
} else {
event.currentTarget.setAttribute('aria-label', 'Abrir Menu');
}
}
btnMobile.addEventListener('click', toggleMenu);
btnMobile.addEventListener('touchstart', toggleMenu);
我看了各种论坛和课程,但是,由于某种原因,没有一个脚本工作。HTML
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Menu Mobile</title>
<link rel="stylesheet" href="menu.css">
</head>
<body>
<header id="header">
<a id="logo" href="">Menu</a>
<nav id="nav">
<button aria-label="Abrir Menu" id="btn-mobile" aria-haspopup="true" aria-controls="menu" aria-expanded="false">
<span id="hamburger"></span>
</button>
<ul id="menu" role="menu">
<li><a href="#home_wrapper" class="menu-link">Home</a></li>
<li><a href="#servico" class="menu-link">Serviços</a></li>
<li><a href="#paginas" class="menu-link">Páginas</a></li>
<li><a href="#projetos" class="menu-link">Projetos</a></li>
<li><a href="#empresas" class="menu-link">Empresas</a></li>
<li><a href="#cupcode" class="menu-link">Cupcode</a></li>
<li><a href="#recursos" class="menu-link">Recursos</a></li>
<li><a href="#contato" class="menu-link">Contato</a></li>
</ul>
</nav>
</header>
<script src="menu.js"></script>
</body>
</html>
1条答案
按热度按时间rxztt3cl1#
类似这样的东西应该可以用,它是用JQuery实现的。
我自己也是个初学者,所以可能有点太复杂或者别的什么。但是这对我很有效。
它不包含你的类和id名,只是让你看看它是如何工作的。