单击导航项目后,我正试图关闭导航菜单。显然,当导航菜单指向一个新页面时,它将关闭。不幸的是,当导航菜单指向同一页面的锚点时,导航菜单将保持打开状态,覆盖整个页面。我不能说什么是相关的或不相关的,所以我已经包含了大部分代码。在我之前尝试解决这个问题时,我预计菜单会在导航项目上消失,导致定位、点击,但我还没有成功。
const hamburger = document.querySelector(".hamburger");
const border = document.querySelector(".border");
const contactimage = document.querySelector(".contact-image");
const contactBubble = document.querySelector(".contact-bubble");
hamburger.addEventListener("click", mobileMenu);
function mobileMenu() {
border.classList.toggle("active");
contactimage.classList.toggle("active");
contactBubble.classList.toggle("active");
}
.right-section {
margin: 0;
margin-top: 40px;
margin-right: 25px;
padding: 1rem 1.5rem;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
}
.right-section ul li {
list-style: none;
}
.right-section ul li a {
text-decoration: none;
font-family: 'Lato', sans-serif;
color: var(--color-dark);
font-size: 18px;
}
.hamburger {
display: none;
}
.bar {
display: block;
width: 25px;
height: 3px;
margin: 5px auto;
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
background-color: var(--color-dark);
}
.nav-menu {
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-item {
margin-left: 3rem;
}
.nav-link {
font-size: 1rem;
font-weight: 700;
color: var(--color-dark);
}
.nav-link:hover {
color: var(--color-secondary-dark);
}
@media only screen and (max-width: 768px) {
ul {
display: flex;
}
.border {
position: fixed;
left: 100%;
top: 0rem;
background-color: var(--color-light);
width: 100%;
height: 100%;
transition: 0.3s;
align-items: center;
box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
}
.nav-menu {
display: flex;
flex-direction: column;
padding: 0;
margin-top: 35vh;
}
.border.active {
left: 0;
}
.nav-item {
display: block;
margin: 10px 0;
}
.nav-link {
color: var(--color-secondary-dark);
}
.hamburger {
display: block;
cursor: pointer;
position: fixed;
}
}
.hamburger.active .bar:nth-child(2) {
opacity: 0;
}
.hamburger.active .bar:nth-child(1) {
transform: translateY(8px) rotate(45deg);
}
.hamburger.active .bar:nth-child(3) {
transform: translateY(-8px) rotate(-45deg);
}
<div class="right-section">
<div class="border">
<ul class="nav-menu" id="nav-menu" onclick="menuOnClick()">
<li class="nav-item">
<a href="/home.html" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a href="#about" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="#reviews" class="nav-link">Reviews</a>
</li>
<li class="nav-item">
<a href="/faq.html" class="nav-link">FAQ</a>
</li>
<li class="nav-item">
<a href="/contact.html" class="nav-link">Contact</a>
</li>
</ul>
</div>
<div class="hamburger" id="hamburger" onclick="menuOnClick()">
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</div>
</div>