汉堡菜单(Hamburger menu)点击无法展开问题求助
汉堡菜单点击不显示的问题修复
核心错误:赋值运算符用错了
你的hideShow函数里修改display属性时,误用了比较运算符==,而不是赋值运算符=,这导致元素的显示状态根本没被修改。
错误代码片段:
if(getElement.style.display=="none"){ getElement.style.display == "block"; // 这里是比较,不是赋值 }else{ getElement.style.display == "none"; // 同样的错误 }
修正后代码:
function hideShow(){ const getElement = document.querySelector('.little-menu'); if(getElement.style.display=="none"){ getElement.style.display = "block"; }else{ getElement.style.display = "none"; } }
补充:初始状态的判断问题
如果你的.little-menu是通过CSS(比如.little-menu { display: none; })初始隐藏的,那么getElement.style.display一开始是空字符串(因为style属性只读取内联样式,不识别CSS类的样式),第一次点击会进入else分支把它设为none,还是看不到菜单。
更推荐用类切换的方式(更灵活,也方便维护样式):
- 先在CSS里定义隐藏类:
.hidden { display: none; }
- 给
.little-menu初始加上这个类:
<div class="little-menu hidden"> <!-- 菜单内容 --> </div>
- 修改JavaScript函数:
function hideShow(){ const getElement = document.querySelector('.little-menu'); getElement.classList.toggle('hidden'); }
额外小优化
你的<a>标签点击后会跳转到页面顶部(因为href="#"),可以在onclick里加上return false阻止默认行为:
<a href="#" class="navbar-button" onclick="hideShow(); return false;"> <i class="fa fa-bars" aria-hidden="true"></i> </a>
内容的提问来源于stack exchange,提问作者PiYa's Loreas
相关产品推荐
相关产品推荐

