首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击时,当我调整页面大小时导航栏保持隐藏

单击时,当我调整页面大小时导航栏保持隐藏
EN

Stack Overflow用户
提问于 2021-05-29 03:07:00
回答 2查看 32关注 0票数 0

我正在尝试为我的导航栏做一个切换按钮。在小于667px的屏幕上,我想隐藏导航栏并显示切换按钮。单击时应显示和隐藏导航栏li。

切换按钮在max-width: 667px上工作良好,但当我调整大小时,导航栏在屏幕宽度大于667px时仍然隐藏

HTML

代码语言:javascript
复制
            <div id="navbar" class="navbar">
                <div class="logo">
                    <a href="index.html"><img src="images/logo.png" width="125px" alt="logo"></a>
                </div>
                <nav>
                    <ul class="slide">
                        <li><a href="#home">Home</a></li>
                        <li><a href="#products">Products</a></li>
                        <li><a href="#contact">Contact</a></li>  
                    </ul>
                    <a class="navbar-toggle">
                        <i class="fa fa-bars"></i>
                    </a> 
                </nav>
            </div>

CSS

代码语言:javascript
复制
.navbar{
    display: flex;
    align-items: center;
    padding: 20px;
}

.slide {
    display: block;
}

.navbar-toggle {
    flex: 1;
    text-align: right;
    display: inline-block;
    list-style: none;
    cursor: pointer;
    display: none;
}


@media screen and (max-width: 667px) {
    .navbar-toggle {
        display: block;
    }
    .slide {
        display: none;
    }
}

JS

代码语言:javascript
复制
$(document).ready(function() {
  
      $('.navbar-toggle').on('click', function(){
        $('.slide').toggle();
        return false;
      });

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-29 03:24:18

min-width添加!important标志,它应该可以正常工作:

代码语言:javascript
复制
@media screen and (min-width: 667px) {
  .slide {
    display: block!important;
  }
}

代码语言:javascript
复制
$('.navbar-toggle').on('click', function(){
        $('.slide').toggle();
        return false;
      });
代码语言:javascript
复制
.navbar{
    display: flex;
    align-items: center;
    padding: 20px;
}

.slide {
    display: block;
}

.navbar-toggle {
    flex: 1;
    text-align: right;
    display: inline-block;
    list-style: none;
    cursor: pointer;
    display: none;
}


@media screen and (max-width: 667px) {
    .navbar-toggle {
        display: block;
    }
    .slide {
        display: none;
    }
}

@media screen and (min-width: 667px) {
  .slide {
    display: block!important;
  }
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<div id="navbar" class="navbar">
      <div class="logo">
          <a href="index.html"><img src="images/logo.png" width="125px" alt="logo"></a>
      </div>
      <nav>
          <ul class="slide">
              <li><a href="#home">Home</a></li>
              <li><a href="#products">Products</a></li>
              <li><a href="#contact">Contact</a></li>  
          </ul>
          <a class="navbar-toggle">
              <i class="fa fa-bars"></i>
          </a> 
      </nav>
  </div>

票数 0
EN

Stack Overflow用户

发布于 2021-05-29 03:29:21

您需要添加一个单独的事件侦听器,该侦听器在事件发出时触发函数。jQuery提供了使用.on('resize')监听窗口大小调整事件的功能。只要调整窗口大小,就会触发此操作。在JavaScript文件中使用这段代码

代码语言:javascript
复制
$(window).on('resize', function () {
    if ($(window).width() > 667) {
        $('.slide').show();
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67744317

复制
相关文章

相似问题

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