bootstrap-collapsible-sidebar是一款基于Bootstrap网格系统的可折叠侧边栏特效。该特效通过Bootstrap网格系统,少量的CSS和jQuery代码来完成类似侧边栏面板的折叠效果。
使用方法
左侧边栏折叠效果
Bootstrap 3使用12列的响应式网格系统。下面的例子中侧边栏占3列,内容部分占9列。在使用中你需要根据实际情况来完成你的布局。
<div class="container"> <div class="row" id="row-main"> <div class="col-md-3" id="sidebar"> ... </div> <div class="col-md-9" id="content"> ... </div> </div> </div>
在侧边栏折叠的时候将会发生下面的情况:
- 侧边栏被隐藏
- 内容部分占据侧边栏的位置
在这个例子中,内容部分将有9列变为12列。
对于如何隐藏侧边栏,可以通过2种方式来实现:
- 对于大屏幕设备,使用负的margin(和侧边栏宽度相同)和过渡动画来隐藏它。
- 对于小屏幕设备,需要做的事情仅仅是在折叠的隐藏侧边栏。
.collapsed { display: none; /* hide it for small displays */ } @media (min-width: 992px) { .collapsed { display: block; margin-left: -25%; /* same width as sidebar */ } }
注意上面的媒体查询代码,这里使用min-width: 992px
来匹配中等宽度的列(.col-md-)。
由于使用了负的margin-left
值,侧边栏会被推到屏幕之外。为了将它隐藏,所有要在容器上设置overflow:hidden;
。
#row-main { overflow-x: hidden; /* necessary to hide collapsed sidebar */ }
最后要处理的事情是侧边栏的动画效果。
#content { -webkit-transition: width 0.3s ease; -moz-transition: width 0.3s ease; -o-transition: width 0.3s ease; transition: width 0.3s ease; } #sidebar { -webkit-transition: margin 0.3s ease; -moz-transition: margin 0.3s ease; -o-transition: margin 0.3s ease; transition: margin 0.3s ease; }
当我们需要切换侧边栏的时候,只需要更换是的的class名称即可。
$("#sidebar").toggleClass("collapsed"); $("#content").toggleClass("col-md-12 col-md-9");
右侧边栏折叠效果
又侧边栏折叠效果的制作方法和左侧边栏的基本相同。HTML结构如下:
<div class="container"> <div class="row" id="row-main"> <div class="col-md-9" id="content"> ... </div> <div class="col-md-3" id="sidebar"> ... </div> </div> </div>
唯一不同的是要使用margin-right
属性来隐藏侧边栏。
@media (min-width: 992px) { .collapsed { display: block; margin-right: -25%; /* same width as sidebar */ } }
其它具体代码请参考下载文件或demo。