首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法让移动导航重新出现

无法让移动导航重新出现
EN

Stack Overflow用户
提问于 2017-06-21 04:57:22
回答 2查看 23关注 0票数 0

我试图通过添加和删除一个带有display:none属性的css类来切换导航栏的显示。我的js将添加类,但不会删除它,以防止nav隐藏。

代码语言:javascript
代码运行次数:0
运行
复制
<div class="hambugerMenu">
   <i class="bars"></i>
</div>

<div id="mobileNav" class="mobileNav">
   <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
   </ul>
</div>
代码语言:javascript
代码运行次数:0
运行
复制
.mobileNavHidden {
    display: none;
}
代码语言:javascript
代码运行次数:0
运行
复制
document.querySelector('.hambugerMenu').addEventListener('click', ()=> {
    hideShowNav()
})

function hideShowNav() {
    var nav = document.querySelector('#mobileNav')
    if (nav.classList.contains("mobileNav")) {
        nav.classList.add("mobileNavHidden")
    } 
    else if (nav.classList.contains('mobileNavHidden')) {
        nav.classList.remove("mobileNavHidden")
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-21 05:05:33

nav仍然具有mobileNav类,因此第一个if-语句将被触发,并且不允许运行else-if-语句。您可以将其更改为先检查mobileNavHidden是否在那里,然后再决定如何处理它。

例如

代码语言:javascript
代码运行次数:0
运行
复制
if (nav.classList.contains("mobileNavHidden")) {
    nav.classList.remove("mobileNavHidden")
} 
else {
    nav.classList.add("mobileNavHidden")
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-21 05:07:43

改变你的功能

代码语言:javascript
代码运行次数:0
运行
复制
function hideShowNav() {
    var nav = document.querySelector('#mobileNav')
    if (nav.classList.contains('mobileNavHidden')) {

      nav.classList.remove("mobileNavHidden")
    } 
    else {
         nav.classList.add("mobileNavHidden")
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44662870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档