【问题标题】:Mobile menu button and main menu display with jquery and css使用 jquery 和 css 显示移动菜单按钮和主菜单
【发布时间】:2017-02-11 02:09:28
【问题描述】:

我有一个移动菜单按钮,其宽度低于 768 像素,单击时会显示菜单,再次单击时会隐藏菜单。但是,一旦菜单被 jquery 隐藏,如果浏览器宽度增加(例如在桌面上)超过 768 像素,我该如何再次显示它。我必须使用 jQuery 来检查屏幕宽度并显示在 768px 以上还是 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>  

【问题讨论】:

    标签: jquery css hamburger-menu


    【解决方案1】:

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

    【讨论】:

    • 但是在您的小提琴中,代表菜单的“测试”需要隐藏,因为浏览器宽度减小到 768 像素以下,而在您的测试中它仍然显示,直到单击按钮。也许我可以像上面的 css 一样将它隐藏在 768px 以下,然后使用按钮添加一个类来覆盖显示设置以显示?
    • 我目前正在使用手机,但我明天会检查。如果我理解你的意思,那可以在你的 CSS 中修复。这就是我添加一个类的原因,因此可以使用媒体查询对其进行操作。您可以将其隐藏在 css 中小于 768px。
    • 是的,它可以通过一些 css 更改来完成。例如:jsfiddle.net/43oays2c/1 基本上我给了你一个轻松操作元素的想法。您可以通过 css(可能还有一些 js)完成的所有其他更改
    猜你喜欢
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多