Bootstrap在左列中切换左列

时间:2015-01-07 18:25:14

标签: jquery html css twitter-bootstrap

我想使用Bootstrap 3.x为中间页面内容创建一列两列。我尝试了关闭canavas,但根据未回答的问题here,它没有像我预期的那样工作。

这是我的JS Fiddle

我希望左列在md及更高版本上正常显示,然后在xs和sm设备上隐藏并显示切换按钮,列的切换应该应用宽度动画以显示漂亮的列推拉。

HTML

<div class="container-fluid">
<div class="row-fluid">
    <div id="col1" class="col-xs-3">Left Col</div>
    <div id="col2" class="col-xs-9">
        Right Col
        <a id="trig" class="btn btn-inverse">Reflow Me</a>
    </div>

  </div>
</div>

CSS

.row-fluid div {
    height: 200px;
    -webkit-transition: width 0.3s ease, margin 0.3s ease;
    -moz-transition: width 0.3s ease, margin 0.3s ease;
    -o-transition: width 0.3s ease, margin 0.3s ease;
    transition: width 0.3s ease, margin 0.3s ease;
}

.row-fluid .col-0 {
    width: 0%;

}

#col1 {
    background-color: #A6BFBA;
}

#col2 {
    background-color: #DE4124;
}

#trig {
    margin: 50px;
}

.row-fluid .col-0 + [class*="span"]{
    margin-left: 0;
}

JS

$('#trig').on('click', function () {
    $('#col1').toggleClass('col-0 col-xs-3');
    $('#col2').toggleClass('col-xs-12 col-xs-9');
});

1 个答案:

答案 0 :(得分:2)

这里看起来像是一对夫妇。首先,您正在使用遗留代码。任何与&#34; span&#34;是旧的Bootstrap 2代码。其次,您还需要转换填充。如果没有填充过渡,它会像丑陋一样跳跃。最后,您还需要将col-0像普通列一样浮动。

下面更新了CSS和演示:

.row-fluid div {
    height: 200px;
    -webkit-transition: width 0.3s ease, margin 0.3s ease, padding 0.3s ease;
    -moz-transition: width 0.3s ease, margin 0.3s ease, padding 0.3s ease;
    -o-transition: width 0.3s ease, margin 0.3s ease, padding 0.3s ease;
    transition: width 0.3s ease, margin 0.3s ease, padding 0.3s ease;
}

.row-fluid .col-0 {
    width: 0%;
    float:left;
}

...

.row-fluid .col-0 + [class*="col"]{
    margin-left: 0;
}

http://fiddle.jshell.net/fv2jvbgL/