使用bootstrap构建响应式导航栏,它会折叠到旁边的导航栏?

时间:2014-09-16 11:41:51

标签: twitter-bootstrap navigation

如何在Twitter Bootstrap 3中构建响应式导航栏,该导航栏在移动设备中作为旁边的导航菜单折叠?

我知道如何使用当前Bootstrap版本附带的响应式导航栏,但我想实现其他类似下面链接中给定的内容!

http://grainandmortar.com/

1 个答案:

答案 0 :(得分:2)

基本上你可以这样做:

HTML结构:

<div class="row row-offcanvas row-offcanvas-right">
    <div class="col-xs-12 col-sm-9">
        <p class="pull-right visible-xs">
            <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button>
         </p>
    </div>

    <div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation">
        <div class="list-group">
            <a href="#" class="list-group-item active">Link</a>
        </div>
    </div>
</div>

CSS:

html,
body {
  overflow-x: hidden; /* Prevent scroll on narrow devices */
}   

/*
 * Off Canvas
 * --------------------------------------------------
 */
@media screen and (max-width: 767px) {
  .row-offcanvas {
    position: relative;
    -webkit-transition: all .25s ease-out;
         -o-transition: all .25s ease-out;
            transition: all .25s ease-out;
  }

  .row-offcanvas-right {
    right: 0;
  }

  .row-offcanvas-left {
    left: 0;
  }

  .row-offcanvas-right
  .sidebar-offcanvas {
    right: -50%; /* 6 columns */
  }

  .row-offcanvas-left
  .sidebar-offcanvas {
    left: -50%; /* 6 columns */
  }

  .row-offcanvas-right.active {
    right: 50%; /* 6 columns */
  }

  .row-offcanvas-left.active {
    left: 50%; /* 6 columns */
  }

  .sidebar-offcanvas {
    position: absolute;
    top: 0;
    width: 50%; /* 6 columns */
  }
}

jQuery的;

$(document).ready(function () {
  $('[data-toggle="offcanvas"]').click(function () {
    $('.row-offcanvas').toggleClass('active')
  });
});

看看这个Bootstrap模板,看看它的实际效果。

Bootstrap Offcanvas Menu