jquery - 使用 jquery 和 css 的移动菜单按钮和主菜单显示

标签 jquery css hamburger-menu

我有一个显示在 768 像素宽以下的移动菜单按钮,单击它会显示菜单,再次单击它会隐藏菜单。但是,一旦菜单被 jquery 隐藏,如果浏览器宽度增加(例如在桌面上)超过 768px,我该如何再次显示它。我必须使用 jQuery 来检查屏幕宽度并显示在 768 像素以上,还是 css 会这样做?

$(document).ready(function(){
    var h = $("#hamburger");
    h.addClass('fa fa-toggle-down');
    h.on('click', function(){
      if (h.hasClass('fa-toggle-down')) {
        h
        .removeClass('fa-toggle-down')
        .addClass('fa-toggle-up');
        $("#main-menu .module-menu").show();
      } else {
        h
        .removeClass('fa-toggle-up')
        .addClass('fa-toggle-down');
        $("#main-menu .module-menu").hide();
      }
    });
});

CSS:

#hamburger {
  font-size: 20px;
  border: 1px solid #eee;
  background: #f5f5f5;
  color: black;
  padding: 3px 3px;
  border-radius: 3px;
  width: 36px;
  height: 36px;
  text-align: center;
  line-height: 30px;
  margin: 14px 3px 3px 3px;
  float:left;
  display:none;
}   
@media (max-width:768px){
  #hamburger {display:block}
  #main-menu .module-menu {display:none}
}   

HTML:

<div id="main-menu">
    <div class="container">
      <div class="row">
      <div class="col-md-9"><module type="menu" /></div>
      <div class="col-md-3" id="header-search"><div id="hamburger"></div><module type="search" template="autocomplete" /></div>
      </div>
    </div>
</div>  

最佳答案

您可以使用类切换,而不是 show()hide() 方法。所以在上课和不上课之间切换。然后你可以选择这个类在某些分辨率下隐藏。 这样您就可以避免使用 jQuery 检查屏幕宽度,并且可以依赖 css media 查询。这是一个例子: https://jsfiddle.net/43oays2c/

关于jquery - 使用 jquery 和 css 的移动菜单按钮和主菜单显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42165607/

相关文章:

jquery - 当我使用 PhotoSwipe Jquery 单击特定图像时,新页面打开并显示完整图像

jquery - 如何忽略 css 类的宽度并通过代码将其设置为 !important

javascript - 尝试使用下一个和上一个按钮创建一个简单的 javascript 画廊以循环回到开头

javascript - 制作汉堡动画的JS问题

swift - Swiftui 中的汉堡导航菜单幻灯片动画

javascript - 在动画期间重复执行代码?

jquery - Facebook 中的通知

html - HTML 中的 onClick,寻找一种使链接菜单在右键单击时显示的方法

jquery - 如何在这个 jquery 代码中制作一个用于打开和关闭 div 的按钮?

ios - 在没有 IBOutlets 的情况下以编程方式更新布局约束 - Swift