【发布时间】:2018-09-16 17:15:29
【问题描述】:
我正在使用动画汉堡菜单 (https://jonsuh.com/hamburgers/) 打开全屏菜单。这一切都按预期工作,但我不知道如何在点击时关闭菜单(当然还有反转动画)。
我能够使用 JS 添加“is-active”类,并且添加“onclick="openNav()" 效果很好,但似乎创建 onclick="toggleNav()" 可能更合适,我只是似乎无法弄清楚如何在 JS 中编写它。
function openNav() {
document.getElementById("popUpNav").style.height = "100%";
}
function closeNav() {
document.getElementById("popUpNav").style.height = "0%";
}
// Hamburger Menu Spin
var hamburger = document.querySelector(".hamburger");
hamburger.addEventListener("click", function() {
hamburger.classList.toggle("is-active");
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/hamburgers/0.9.3/hamburgers.css" rel="stylesheet"/>
<!-- Full Screen Navigation -->
<div id="primaryNav">
<nav>
<!-- Spinning Hamburger Button -->
<button class="hamburger hamburger--spin" type="button" aria-label="Menu" aria-controls="navigation" aria-expanded="false" onclick="openNav()">
<span class="hamburger-box">
<span class="hamburger-inner"></span>
</span>
</button>
<div id="popUpNav" class="overlay" onclick="closeNav()">
<div class="overlay-content">
<a href="#problemSolution" data-scroll onclick="closeNav()">Link 1</a>
<a href="#" data-scroll onclick="closeNav()">Link 2</a>
<a href="#" data-scroll onclick="closeNav()">Link 3</a>
<a href="#" data-scroll onclick="closeNav()">Link 4</a>
</div>
</div>
</nav>
</div><!-- End Primary Nav -->
【问题讨论】:
标签: javascript css-animations hamburger-menu