这是一个HTML/CSS结构/位置问题,它可能是一个快速,我只是错过了一些东西。已经用了好几天了…我想不明白。
我有一个信息的饲料,我在几乎全宽度显示,当我点击一个按钮,我想要第二个面板滑动从右边到~68/28的比例,如果我点击另一个按钮,右面板采取全宽度。
我尝试了一堆东西,相对位置,浮动…但我似乎不明白。理想情况下,使用CSS的"位置"属性,使动画平滑使用CSS3。
看起来我真的不擅长定位。
这是HTML,简单明了:
<div class="container">
<div class="col-left">Some content here from left col</div>
<div class="col-right">Some content ehre from right col</div>
</div>
和不起作用的CSS:
.container{
position: absolute;
left: 50px;
padding: 0 40px;
right: 0;
}
.col-left. col-left{
position: relative;
display: block;
top:0px;
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-ms-transition: all 500ms ease;
-o-transition: all 500ms ease;
transition: all 500ms ease;
}
.col-left{
left:0px;
}
.col-right{
right: -100%;
}
body.split .col-left{
}
body.split .col-right{
}
Here is a Fiddle:
http://jsfiddle.net/5zG3q/21/(正如你所看到的,我已经在v21的小提琴和仍然不能弄清楚)
提前感谢你的帮助。
编辑经过一些调整,我得到了更接近我想要的东西,但感觉很脏……http://jsfiddle.net/5zG3q/23/
从@drew_w和其他帖子中获得灵感后,我想我找到了解决方案。我在col周围添加了一个两倍宽度的换行DIV。然后分母比,显然要除以2。然后我可以通过宽度和位置来制作动画。
.container {
position: absolute;
left: 60px;
padding: 0 40px;
right: 0;
overflow:hidden;
background:#e2e2e2;
}
.inner-container{
display: block;
width: 200%;
overflow: hidden;
}
.col-left, .col-right {
display: inline-block;
vertical-align: top;
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-ms-transition: all 500ms ease;
-o-transition: all 500ms ease;
transition: all 500ms ease;
}
.col-left {
width: 50%;
background: green;
}
.col-right {
margin-left: 10%;
width: 29%;
background: red;
}
body.split .col-left {
width: 33%;
}
body.split .col-right {
margin-left: 1%;
width: 15%;
}
body.full .col-left {
width: 33%;
margin-left: -33%;
}
body.full .col-right {
margin-left: 0%;
width: 50%;
}
必须添加一点JS,在主体中添加一个类:
$("body").on("click", "[data-toggle-view]", function () {
var $this = $(this);
var $body = $("body");
var view = $this.data("toggleView");
$body.removeClass("split full");
$body.addClass(view);
return false;
});
小提琴:http://jsfiddle.net/5zG3q/23/
仍然感觉不太干净,但它有效。