javascript - 点击后汉堡菜单打不开
问题描述
我让我的菜单缩小为汉堡包样式
max-width: 500px;
我添加了javascript以在单击链接后关闭它并且它工作正常,但是在单击第一个链接后,再次打开它,汉堡包图标不起作用但你必须单击菜单链接应该在的位置(即使不显示)。
var nav = 1;
function navMenu() {
if (nav === 1) {
document.getElementById("showmenu").style.opacity = 0;
nav = 0;
} else if (nav === 0) {
document.getElementById("showmenu").style.opacity = 1;
nav = 1;
}
}
.nav {
justify-content: flex-end;
text-align: right;
height: 50px;
line-height: 50px;
font-family: 'Roboto', Arial, Helvetica, sans-serif;
font-size: calc(12px + .2vw);
width: 100%;
box-sizing: border-box;
}
.menu {
display: block;
margin: 0 30px 0 0;
}
.menu a {
text-decoration: none;
color: #828282;
margin: 0 20px;
line-height: 50px;
}
label {
margin: 0 0 0 0;
font-size: 25px;
line-height: 50px;
display: none;
margin: 0 20px;
text-align: right;
}
#toggle {
display: none;
}
@media screen and (max-width: 500px) {
label {
display: block;
cursor: pointer;
}
.nav {
margin-right: 0;
}
.menu {
text-align: center;
width: 100%;
display: none;
box-sizing: border-box;
background-color: #000000;
}
.menu a {
display: block;
border-bottom: 1px solid #D736A6;
margin: 0;
}
#toggle:checked+.menu {
display: block;
}
}
<div class="nav">
<label for="toggle">☰</label>
<input type="checkbox" id="toggle">
<div class="menu" id="showmenu" onclick="navMenu()">
<a href="#home">Home</a>
<a href="#aboutme">About</a>
<a href="#skills">Skills</a>
<a href="#work">Work</a>
<a href="#contact">Contact</a>
</div>
</div>
解决方案
<div class="menu" id="showmenu" onclick="clickAnyAreaOnMenu();">
<a href="#home">Home</a>
<a href="#aboutme">About</a>
<a href="#skills">Skills</a>
<a href="#work">Work</a>
<a href="#contact">Contact</a>
</div>
<script>
function clickAnyAreaOnMenu() {
let toggle = document.getElementById("toggle");
toggle.checked = false;
}
</script>
推荐阅读
- firebase - 我是否需要对要访问的文档的每个字段进行获取
- c# - 在c# windows窗体中清除画在图片框上的线条
- javascript - 角度量角器循环('一些测试')测试
- jquery - document.on 更改与 element.on 更改
- java - 如何传递按钮意图以使另一个活动中的可绘制更改颜色?
- ios - 反应本机应用程序在调试模式下工作,但在 ios 上不工作发布模式
- javascript - Javascript回调函数没有被触发
- ssh - 如何修复 gitlab Ci/CD 中的权限被拒绝(公钥、密码)?
- javascript - 使用用户名(不是电子邮件)登录 Firebase
- selenium - selenium webdriver 使用 firefox 进行谷歌搜索/硒测试