Twitter Bootstrap折叠插件方向 - 水平而不是垂直

Roy*_*els 34 jquery jquery-plugins twitter-bootstrap bootstrap-4

有没有办法从水平而不是垂直折叠Bootstrap Collapse插件?看看代码这个能力似乎没有内置,但我希望我只是遗漏了一些东西......

任何帮助将不胜感激.谢谢!

Roy*_*els 23

我想出了如何在不修改或添加任何javascript的情况下轻松完成此操作.

首先,在所有Twitter Bootstrap CSS之后定义以下CSS:

.collapse {
  height: auto;
  width: auto;
}

.collapse.height {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
  -moz-transition: height 0.35s ease;
  -o-transition: height 0.35s ease;
  transition: height 0.35s ease;
}

.collapse.width {
  position: relative;
  width: 0;
  overflow: hidden;
  -webkit-transition: width 0.35s ease;
  -moz-transition: width 0.35s ease;
  -o-transition: width 0.35s ease;
  transition: width 0.35s ease;
}

.collapse.in.width {
  width: auto;
}

.collapse.in.height {
  height: auto;
}
Run Code Online (Sandbox Code Playgroud)

接下来,在目标元素(您定义.collapse类的位置)上,您需要添加类.width.height根据要设置动画的属性.

最后,如果动画宽度,则必须包装目标元素的内容并显式定义其宽度.如果设置高度动画,则不需要这样做.

你可以在这里找到一个有用的例子 - > http://jsfiddle.net/ud3323/ZBAHS/

  • 有关工作示例,请参见http://stackoverflow.com/questions/19843732/bootstrap-3-0-collapse-horizo​​ntally-bounces-in-chrome/26898065和http://jsfiddle.net/zu5ftdjx/ (4认同)

fli*_*ide 21

使用bootstrap 3.0.0,您只需要将width类添加到目标元素,然后将以下css添加到动画中.

.collapse.width {
    height: auto;
    -webkit-transition: width 0.35s ease;
    -moz-transition: width 0.35s ease;
    -o-transition: width 0.35s ease;
    transition: width 0.35s ease;
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说似乎不起作用.我在bootstrap上使用flat-ui. (2认同)

J_A*_*A_X 6

在我的bootstrap 3版本中(使用LESS),我只需将其包含在我的全局less文件中:

.collapsing.width  { 
    width: 0;
    height: auto;
    .transition(width 0.35s ease);
}
Run Code Online (Sandbox Code Playgroud)

额外的类必须width自collapse.js为转换查找此类.我尝试了其他人的建议,但他们并没有为我工作.

  • 这对我很有用,但由于我的文件不是和bootstrap一起编译的,所以我必须在使用之前定义`.transition` mixin:``.transition(@transition){-webkit-transition:@transition; -moz-transition:@transition; -ms-transition:@transition; -o-transition:@transition; }`` (2认同)

Zim*_*Zim 6

2018年更新

Bootstrap 4.x

Bootstrap 4水平折叠转换基本相同,预计可见类现在.show代替.in.它也可能有助于指定display:block,因为现在显示许多元素:flex.

.collapse.show {
  visibility: visible;
}
Run Code Online (Sandbox Code Playgroud)

4.x演示
4.x侧边栏演示

Bootstrap 3.3.7(原始答案)

现有的答案都不适合我.要在最新版本中使折叠动画水平,您需要设置过渡到宽度,并使用可见性.

.collapse {
  visibility: hidden;
}
.collapse.in {
  visibility: visible;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.collapsing.width {
  -webkit-transition-property: width, visibility;
  transition-property: width, visibility;
  width: 0;
  height: auto;
}
Run Code Online (Sandbox Code Playgroud)

3.x演示