简体   繁体   English

单击导航链接或外部时切换导航菜单

[英]Toggle nav menu when clicked on nav links or outside

I have been trying to make my mobile navigation menu to toggle back when I click outside the navigation links or when I click on one of them.我一直在尝试让我的移动导航菜单在我单击导航链接外部或单击其中一个链接时切换回来。 I have looked around and I only find jQuery example which I'm avoiding.我环顾四周,只发现我正在避免的 jQuery 示例。 I want to have an example with JavaScript ES6.我想举一个 JavaScript ES6 的例子。 So, how can I make it work?那么,我怎样才能让它工作呢?

Here is my code:这是我的代码:

 const navSlide = () => { const burger = document.querySelector('.burger'); const nav = document.querySelector('.nav-links'); burger.addEventListener('click', () => { nav.classList.toggle('nav-active'); }) } navSlide();
 html { scroll-behavior: smooth; } * { padding: 0; margin: 0; box-sizing: border-box; } body { font-family: Gelion; background-color: #fa555204; }.nav-links li a, .logo { text-decoration: none; } ul { list-style: none; }.main-nav { display: flex; align-items: center; justify-content: space-between; font-size: 18px; height: 10%; padding: 20px 0; }.nav-links { display: flex; }.nav-links li { padding: 0 15px; }.burger{ display: none; } /* Media Query - Mobile */ @media only screen and (max-width: 700px) { body { overflow-x: hidden; } /* Burger Menu */.nav-links { position: fixed; right: 0; height: 100vh; width: 60%; top: 0vh; background-color: var(--secondary-color); display: flex; justify-content: space-evenly; align-items: center; flex-direction: column; transform: translateX(100%); transition: transform 0.5s ease-in; z-index: 1; }.nav-links li a { color: #fff; }.nav-active { transform: translateX(0%); }.main-nav.burger { display: block; cursor: pointer; font-size: 35px; } }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css" rel="stylesheet"/> <nav class="main-nav"> <a href="#" class="logo" />Logo</a> <ul class="nav-links"> <li><a href="#Overview">Overview</a></li> <li><a href="#Contagion">Contagion</a></li> <li><a href="#Symptoms">Symptoms</a></li> <li><a href="#Prevention">Prevention</a></li> <li><a href="#Contact">Contact</a></li> </ul> <div class="burger"> <i class="fas fa-bars"></i> </div> </nav>

you can use css very easy for this Using:focus Selector checkout this link: https://www.w3schools.com/cssref/sel_focus.asp你可以很容易地使用 ZC7A62 8CBA22E28EB17B5F5C6AE2A266AZ

or try this或试试这个

.classname:focus{
  //your code here will run while client focused in this class
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM