我刚刚访问了此页面http://www.elmastudio.de/,并想知道是否可以使用Bootstrap 3构建左侧边栏折叠。
从顶部折叠侧边栏的代码(仅限电话):
<button type="button" class="navbar-toggle sidebar-toggle" data-toggle="collapse" data-target=".sidebar-ex1-collapse">
<span class="sr-only">Sidebar</span>
<span class="glyphicon glyphicon-check"></span>
</button>
补充工具栏本身具有hidden-xs类。使用以下js删除它
$('.sidebar-toggle').click(function(){
$('#sidebar').removeClass('hidden-xs');
});
如果单击该按钮,则会从顶部切换侧边栏。很高兴看到侧边栏的行为与上面显示的网站相似。任何帮助表示赞赏!
答案 0 :(得分:120)
Bootstrap 3
是的,这是可能的。这个“画布外”的例子应该有助于你开始。
基本上你需要将布局包装在外部div中,并使用媒体查询在较小的屏幕上切换布局。
/* collapsed sidebar styles */
@media screen and (max-width: 767px) {
.row-offcanvas {
position: relative;
-webkit-transition: all 0.25s ease-out;
-moz-transition: all 0.25s ease-out;
transition: all 0.25s ease-out;
}
.row-offcanvas-right
.sidebar-offcanvas {
right: -41.6%;
}
.row-offcanvas-left
.sidebar-offcanvas {
left: -41.6%;
}
.row-offcanvas-right.active {
right: 41.6%;
}
.row-offcanvas-left.active {
left: 41.6%;
}
.sidebar-offcanvas {
position: absolute;
top: 0;
width: 41.6%;
}
#sidebar {
padding-top:0;
}
}
此外,还有几个more Bootstrap sidebar examples here
Bootstrap 4
答案 1 :(得分:88)
这里还有另一个有用的入门模板,供所有感兴趣的人使用。
答案 2 :(得分:24)
http://getbootstrap.com/examples/offcanvas/
这是官方的例子,对某些人来说可能更好。这是在他们的实验示例部分,但由于它是官方的,它应该与当前的引导程序版本保持同步。
看起来他们已经在他们的示例中添加了一个非画布css文件:
http://getbootstrap.com/examples/offcanvas/offcanvas.css
还有一些JS代码:
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.row-offcanvas').toggleClass('active')
});
});
答案 3 :(得分:8)
编辑:我为引导边栏添加了另一个选项。
实际上有三种方式可以制作bootstrap 3侧边栏。我试图让代码尽可能简单。
在这里,您可以看到demo一个简单的固定边栏,我开发的页面高度与页面相同
我还开发了一个相当简单的列边栏,可以在容器内的两个或三个列页面中工作。它需要最长列的长度。在这里,您可以看到demo
如果您使用google bootstrap信息中心,则可以找到多个合适的信息中心,例如this one。但是,大多数都需要大量编码。我开发了一个仪表板,无需额外的javascript(在bootstrap javascript旁边)。这是demo
对于所有三个示例,您当然必须包括jquery,bootstrap css,js和theme.css文件。
如果您希望侧边栏在按下按钮时隐藏,这也可以只使用一点点javascript.Here是demo
答案 4 :(得分:6)
Via Angular:使用Angular的ng-class
,我们可以隐藏并显示侧栏。
http://jsfiddle.net/DVE4f/359/
<div class="container" style="width:100%" ng-app ng-controller="AppCtrl">
<div class="row">
<div ng-class="showgraphSidebar ? 'col-xs-3' : 'hidden'" id="colPush" >
Sidebar
</div>
<div ng-class="showgraphSidebar ? 'col-xs-9' : 'col-xs-12'" id="colMain" >
<button ng-click='toggle()' >Sidebar Toggle</a>
</div>
</div>
</div>
function AppCtrl($scope) {
$scope.showgraphSidebar = false;
$scope.toggle = function() {
$scope.showgraphSidebar = !$scope.showgraphSidebar;
}
}
答案 5 :(得分:3)
在doc上没有提到它,但是使用“Collapse”方法可以在Bootstrap 3上左侧边栏。
如bootstrap.js所述:
Collapse.prototype.dimension = function () {
var hasWidth = this.$element.hasClass('width')
return hasWidth ? 'width' : 'height'
}
这意味着,将“宽度”类添加到目标中,将按宽度而不是高度扩展: