【问题标题】:Why doesn't the bootstrap navbar mobile menu appear?为什么不出现引导导航栏移动菜单?
【发布时间】:2017-02-20 16:06:31
【问题描述】:

我有两个问题。首先也是最重要的是如何使缩小版中的菜单出现。我想要的第二件事是让导航栏在我向下滚动时保持在顶部,并从现在的透明变为黑色。

代码是:

<nav class="navbar-inner navbar-inverse">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Cosmos</a>
    </div>
   <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav pull-right">
      <li><a href="#">Home</a></li>
      <li><a href="#about">About</a></li>
      <li><a href="#">Portfolio</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
    </div>
  </div>
</nav>

css 是:

.navbar-inner {
    background: transparent;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1;
}

您也可以查看项目的codepen页面: https://codepen.io/georgekech/pen/ZLNMGE

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:

    回答你的两个问题:

    虽然使用引导响应已经被处理。如果在您的 HTML 上提供了正确的标记,引导程序将负责移动视图上的菜单。因此,当您缩小到移动视图时,导航栏右侧会出现一个“汉堡菜单”,用于切换您的菜单选项。

    接下来,如果您希望在向下滚动时标题保持在顶部。 Bootstrap 已经提供了它。您只需&lt;nav&gt; 上的navbar-fixed-top 替换为navbar-inverse。同样重要的是删除给navbar-inner的不必要的position: absolute属性

    .navbar-inner {
       background: transparent;
       position: absolute; //remove
       top: 0; //remove
       right: 0; //remove
       left: 0; //remove
       z-index: 1;
    }
    

    接下来,要在滚动时更改导航栏的背景,您需要添加 2 个简单的更改,一个到您的 JavaScript(使用 JQuery)另一个到您的 CSS,这两个更改同时进行.

    JQuery:

    $(function () {
      $(document).scroll(function () {
        var $nav = $(".navbar-fixed-top");
        $nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height());
      });
    });
    

    CSS:

    .navbar-fixed-top.scrolled {
      background: black;
    }
    

    当您滚动超过导航栏的高度时,Jquery 基本上会向您的导航栏添加/删除(切换)一个类。当然CSS是在从JQuery添加类时添加背景颜色。

    Your codepen here

    注意:

    1. 显然不要忘记包含 JQuery 库以使 JavaScript 工作,或者您可以使用纯 JavaScript 来做同样的事情。

    2. 如果你确实包含JQuery,由于你使用的是Bootstrap v3.3.6,JQuery版本需要高于1.9.1但也低于3。所有这些你可以找到here

    成交!

    【讨论】:

    • 向下滚动时它不会变黑。
    • 在我共享的代码笔中它不会变黑,或者在您的本地它不会变黑?
    • 哦,我没注意到你的密码笔。它在你的。我只会复制它。但问题是它交替导航栏菜单元素,所以现在当我将鼠标悬停在它们上面时,它们有白色背景。
    • 这个也可以解决,透明和黑色的时候你希望它如何?
    【解决方案2】:

    尝试以下代码

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    
    <!-- Bootstrap Navigation Start -->
            <nav class="navbar navbar-inverse navbar-fixed-top">
              <div class="container">
                <div class="navbar-header">
                   <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                   <span class="sr-only">Toggle navigation</span>
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
                   </button>
                  <a class="navbar-brand" href="#">Cosmos</a>
                </div>
                <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                  <div>
                    <ul id="menu-hover" class="nav navbar-nav">
                      <li><a href="#">Home</a></li>
                      <li><a href="#">Public Service</a></li>
                      <li><a href="#">Idea SubMission</a></li>
                      <li><a href="#">Power Division</a></li>
                    </ul>
                    </div>
                </div>
              </div> <!-- End Navbar Collapse -->
            </nav>
    <!--End Bootstrap Navigation

    【讨论】:

      【解决方案3】:
      .navbar-inner {
      background: transparent;
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      z-index: 1;
      }
      

      .navbar-inner 位置固定将使您的菜单稳定,即使您向下滚动。

      要更改滚动菜单颜色,请查看此menu background change color on scroll 的答案。

      【讨论】:

        【解决方案4】:

        您需要使用与按钮中的data-target 相同的名称作为菜单的 div 的 id。在这种情况下,它是“bs-example-navbar-collapse-1” 所以将id="bs-example-navbar-collapse-1 添加到div class="collapse navbar-collapse"

        对于导航栏,如果您使用引导程序来满足您的需求,则无需使用 CSS。将“navbar-fixed-top”类添加到nav 元素中。

        当你使用这个类时,你需要添加body {padding-bottom: 70px; }。这会将您的页面内容推送到您的导航栏下。 70px 适用于您的示例,但可以根据需要进行更改。

        【讨论】:

          猜你喜欢
          • 2014-11-08
          • 1970-01-01
          • 1970-01-01
          • 2017-03-30
          • 1970-01-01
          • 2018-09-29
          • 1970-01-01
          • 2013-08-24
          • 1970-01-01
          相关资源
          最近更新 更多