我一直在玩这个,但不能完全弄明白......
我有一个基本上是滑动侧边栏。
初始状态如下所示。
#sidebar {
position: fixed,
width: 200px
}
另一个州是:
#sidebar {
position: fixed,
width: 200px,
left: -190px
}
我希望另一个人能够在此处填充屏幕上的剩余空间。这也应该是动态的,所以当切换#sidebar时,它会重新调整大小以便随时填充空格。
注意:#sidebar的css更改也使用$ .animate进行动画制作,因此在侧边栏重新调整大小时应重新调整大小。
使用CSS有一个很好的方法吗?或者,是否有一个良好的jscript / jquery库用于滑动输入/输出侧边栏。我看了但找不到一个,所以我开始自己动手了。
我能想到的唯一另一种方法是使用jscript手动重新调整另一个,同时重新定位#sidebar。但这似乎过度杀人。
答案 0 :(得分:1)
以下是一个例子:
CSS:
#sidebar
{
position: fixed;
width: 200px;
background-color:#9cf;
left:0;
}
#sidebar.tucked { left: -190px; }
#content
{
margin-left:200px;
}
#content.tucked { margin-left:10px; }
使用Javascript:
$(function()
{
$('#sidebar').on("click", function()
{
$('#sidebar, #content').toggleClass("tucked", 1000);
});
});
答案 1 :(得分:1)
我根据我所做的类似项目将这个小提琴放在一起:http://jsfiddle.net/DrdHJ/
基本上我只有两列:
<div id="sidebar">
<a class="resize" data-width="300">Large</a>
<br>
<a class="resize" data-width="200">Small</a>
</div>
<div id="main"></div>
#sidebar
是您的“滑动”列,#main
是包含内容的主要块。
然后对于CSS我有以下内容:
html, body { width: 100%; height: 100%; }
#sidebar {
width: 200px;
height: 100%;
float: left;
background-color: red;
}
#main {
width: auto;
height: 100%;
margin-left: 200px;
background-color: blue;
}
需要注意的重要一点是margin-left
上的#main
是保持原样的。
然后对于JavaScript,我有以下内容:
$('.resize').on('click',function(){
var width = $(this).data('width');
$('#sidebar').css('width',width+'px');
$('#main').css('margin-left',width+'px');
});
其中侦听要调整大小的事件,然后根据所点击链接的#sidebar
属性调整#main
的宽度和data-width
的左边距偏移量。显然可以调整这一点,将css()
替换为animate
。