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。