我正在寻找一个CSS解决方案来创建一个按钮,使用twitter bootstrap打开和关闭侧边栏。
我喜欢人们在他们的网页上看到的一个小图标,当侧边栏关闭时,它们看起来像拉片,然后在拉出边栏时跟随边栏 - 这是否有名字?
我已经创建了一个toggleSidebar图标链接来执行此操作,但我有两个问题:
html:
<div class="container-fluid">
<div class="row-fluid">
<div id="sidebar" class="span3 scrollDiv" style="display: none;">
<!--Sidebar content-->
</div>
<div id="content" class="span12">
<!--Main content-->
</div>
<a id="toggleSidebar" href="#" class="toggles"><i class="icon-chevron-right"></i></a>
</div>
</div>
css:
#toggleSidebar {
/* float: left; */
/* display:inline-block; */
position:fixed;
display:block;
left:0;
top:45px;
color:#779DD7;
padding:2px 4px;
}
javascript:
function sidebar(panels) {
if (panels === 1) {
$('#content').removeClass('span9');
$('#content').addClass('span12 no-sidebar');
$('#sidebar').hide();
} else if (panels === 2) {
$('#content').removeClass('span12 no-sidebar');
$('#content').addClass('span9');
$('#sidebar').show();
}
}
$('#toggleSidebar').click(function() {
if ($.asm.panels === 1) {
$('#toggleSidebar i').addClass('icon-chevron-left');
$('#toggleSidebar i').removeClass('icon-chevron-right');
return sidebar(2);
} else {
$('#toggleSidebar i').removeClass('icon-chevron-left');
$('#toggleSidebar i').addClass('icon-chevron-right');
return sidebar(1);
}
})
这方面的一个工作示例:http://jsfiddle.net/amorris/dmyTR/
对于我的生活,我无法在网上找到一个例子 - 但这里是我所追求的内容的快速绘图:
有点像效果@ http://simplerealtytheme.com/plugins/pullout-widgets/ - 看起来他们正在使用display:block;明确:两者;然后将拉片绝对放置在具有负右位置的div内。
答案 0 :(得分:32)
我认为这就是您想要的,请参阅here。
相关代码是:
#content {
float:left;
}
#mapCanvas img {
max-width: none;
}
#maincont{
margin-top: 42px;
}
#toggleSidebar {
float:left;
color:#779DD7;
padding:2px 4px;
}
#sidebar{
float:left;
}
请确认这是您的想法!
答案 1 :(得分:15)
这是你的想法吗?
基本上,而不是.hide()和.show();你动画它的位置。
// to hide
$('#sidebar').animate({
left: -180,
});
// to show
$('#sidebar').animate({
left: 20,
});
我从.container-fluid中删除了#sidebar,因为它不是容器的一部分。我还把#toggleSidebar放在#sidebar里面。
答案 2 :(得分:2)
这是我绘制的动画侧抽屉,需要很少的引导修改: http://zombiehippie.github.io/Side-drawer/
@media screen and (max-width: 768px) {
/* this is container is moved to the side if class is added*/
.side-collapse-container{
width:100%;
position:relative;
left:0;
transition:left .4s;
}
/* toggled when navbar is out */
.side-collapse-container.out{
left:200px;
}
.side-collapse {
/* need top to keep from overlapping fixed header*/
top:50px;
bottom:0;
left:0;
width:200px;
position:fixed;
overflow:hidden;
/* transition animates the element */
transition:width .4s;
}
/* toggled when navbar is in */
.side-collapse.in {
width:0;
}
}
使用.side-collapse
样式的固定导航栏允许我们将条形图固定到屏幕边缘。
在标题之后将.side-collapse-container
添加到容器允许在打开时转移内容。
某些脚本会将点击事件附加到[data-toggle=]
选择器。
$(document).ready(function() {
var sideslider = $('[data-toggle=collapse-side]');
var sel = sideslider.attr('data-target');
var sel2 = sideslider.attr('data-target-2');
sideslider.click(function(event){
$(sel).toggleClass('in');
$(sel2).toggleClass('out');
});
});
查看源html或jade的github页面。
HTML源代码 https://github.com/ZombieHippie/Side-drawer/tree/gh-pages