这是一个HTML / CSS结构/位置问题,它可能很快,我只是错过了一些东西。已经好几天了...无法弄明白。
我有几乎全宽的信息输入,当我点击一个按钮时,我希望第二个面板从右边滑入~68 / 28的比例,如果我点击另一个按钮,右侧面板占据整个宽度。
我尝试了很多东西,相对位置,漂浮......但我似乎无法弄明白。理想情况下,使用CSS“position”属性可以使用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{
}
这是一个小提琴:
http://jsfiddle.net/5zG3q/21/ (正如你所看到的,我已经在Fiddle的v21上,仍然无法弄明白)
提前感谢您的帮助。
EDITS 经过一些调整后,我得到了更接近我想要的东西,但感觉很脏...... http://jsfiddle.net/5zG3q/23/
答案 0 :(得分:0)
从@drew_w和其他帖子的灵感来看,我认为我找到了解决方案。 我在col的宽度上加了一个包裹DIV。 那么divs比率,我必须明显地除以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/
仍然感觉不干净,但它确实有效。