html - Bootstrap 在点击时折叠导航栏

标签 html css twitter-bootstrap-3

<分区>

我正在使用 Bootstrap 导航栏。当用户单击导航栏按钮时,导航栏保持打开状态。单击导航栏按钮时如何折叠导航栏?

<nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <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">Brand</a>
    </div>

    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav navbar-right">
        <li class="active"><a data-toggle="tab" href="#sectionA">Page1</a></li>
        <li><a data-toggle="tab" href="#sectionB">Page2</a></li>
        <li><a data-toggle="tab" href="#sectionC">Page3</a></li>
       </ul>
    </div>
  </div>
</nav>

截图:

这是点击导航栏按钮后的样子(菜单保持打开状态):

enter image description here

这就是我希望它在单击导航栏按钮(返回原始状态)后的样子: enter image description here

最佳答案

我有两个解决方案:

第一个选项:data-toggle 属性

您可以将以下属性添加到 anchor data-toggle="collapse"data-target=".in" 这样,菜单将在选择菜单项时折叠

这是您的代码:

    <nav class="navbar navbar-default" role="navigation">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <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">Brand</a>
        </div>

        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-right">
<!-- Add data-toggle="collapse" data-target=".in" to <a> elements-->
<!-- This way they will collapse the responsive menu when clicked -->
            <li class="active"><a data-toggle="collapse" data-target=".in" href="#sectionA">Page1</a></li>
            <li><a data-toggle="collapse" data-target=".in" href="#sectionB">Page2</a></li>
            <li><a data-toggle="collapse" data-target=".in" href="#sectionC">Page3</a></li>
           </ul>
        </div>
      </div>
    </nav>

示例:http://jsfiddle.net/Frondor/sey4wsah/


第二个备选方案:使用 jQuery (最佳方法)

如果第一个示例不适合您,您可以在 jQuery 和 Bootstrap.js 库调用下面添加几行 jQuery,不要忘记 jquery.js 和 Bootstrap.js API:

<script src="/js/jquery.min.js"> <!--suppose these are the same paths you're using for it -->
<script src="/js/bootstrap.min.js">

及以下:

<script>
$(document).ready(function () {
    $("nav").find("li").on("click", "a", function () {
        $('.navbar-collapse.in').collapse('hide');
    });
});
</script>

这将匹配响应式菜单上的每个链接,并在点击事件时折叠所述菜单。 试一试

关于html - Bootstrap 在点击时折叠导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794011/

相关文章:

css - SASS 中的元素 > 元素?

jquery - 根据日期范围过滤更改 jquery 数据表行的 css

css - 无法使用 LESS 在 Twitter Bootstrap 中重新定义 @font-size-h*?

javascript - 如何使用 Swift 加载 javascript 后获取页面的 HTML 源代码

javascript - 请求全屏 HTML5 视频 onPlay

html - 流体布局示例

jquery - 菜单按钮不起作用

html - 计算用户在整个网站上的总点击次数并相应地更改背景

html - Bootstrap - 一页的自定义表格行突出显示类

twitter-bootstrap-3 - 当我将 Twitter.Bootstrap 版本从 2.3 更改为 3.0 时,为什么按钮会失去其 3d 样式?