自定义bootstrap 4中的折叠过渡

m3eecexj  于 11个月前  发布在  Bootstrap
关注(0)|答案(4)|浏览(121)

Bootstrap 4使用类.collapsing来在打开/关闭时动画化. dense元素的宽度/高度。不幸的是,实际的更改是通过将宽度/高度作为内联样式添加到元素中,并在过渡的开始和结束处添加和删除该类来实现的。因此,很难自定义过渡(例如更改时间或淡入/淡出而不是宽度过渡)。
到目前为止我尝试过的:

  • 将css属性transition:none添加到.collapsing类:这确实有助于摆脱转换,但打开/关闭仍然会延迟转换时间,因为在实际更改发生之前,类仍然会添加几个米利斯。
  • .collapsing类添加自定义css关键帧:由于打开和关闭使用同一个类,因此显示的动画相同。

是否有任何方法可以改变过渡,例如淡入/淡出(改变不透明度),或者我必须构建一个自定义版本的bootstrap.js?

qco9c6ql

qco9c6ql1#

看看这个例子:

.collapse {
  visibility: hidden;
}
.collapse.show {
  visibility: visible;
  display: block;
}
.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;
}

个字符

798qvoo8

798qvoo82#

如果您使用SASS编译bootstrap.css,请更改_variables.scss文件中为$transition-collapse变量指定的时间。
Bootstrap v4.2.1的默认设置在第254行:

$transition-collapse: height .35s ease !default;

字符串
我把0.35改为0.15,但你可以把你的设置成你更喜欢的。

ccrfmcuu

ccrfmcuu3#

这是关于过渡样式的。你可以用s表示秒,用ms表示毫秒。我通过实验发现,这是所需的最小html。* 注意,Bootstrap使用id和data-target将按钮与要折叠的部分关联起来。所以,如果你有多个可折叠的部分,你需要单独的id。*

<button
  data-toggle="collapse"
  data-target="#collapseExample">button name</button>
...
<div style="transition: 1s;" id="collapseExample">
your collapsible stuff goes here.
</div>

字符串
其他信息:

w51jfk4q

w51jfk4q4#

$('#collapseExample').on('show.bs.collapse', function () {
    $(this).addClass('collapse-show');
})
$('#collapseExample').on('shown.bs.collapse', function () {
    $(this).removeClass('collapse-show');
})

字符串

相关问题