禁用Bootstrap的折叠打开/关闭动画

you*_*es0 69 javascript animation twitter-bootstrap

任何禁用折叠组的打开/关闭动画的技巧?

Vas*_*lis 127

对于Bootstrap 34来说

.collapsing {
    -webkit-transition: none;
    transition: none;
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这会禁用动画,但根据OP的请求,它会保持打开延迟.是否可以将延迟减少到0? (7认同)
  • 在移动设备上还有一个小小的deley因为来自bootstrap.js的这一行:"Collapse.TRANSITION_DURATION = 350"改变转换持续时间值并且延迟将被修复. (6认同)
  • 可以确认,这适用于 bootstrap 3。我最终禁用了转换,因为它在移动设备上相当慢。不知道为什么。 (2认同)
  • 那么-moz-transition和-o-transition怎么样? (2认同)
  • 我添加了“display: none”以避免最后一个崩溃的文物。 (2认同)

you*_*es0 23

Bootstrap 2 CSS解决方案:

.collapse {  transition: height 0.01s; }  
Run Code Online (Sandbox Code Playgroud)

注意:设置transition: none禁用崩溃功能.


Bootstrap 4 解:

.collapsing {
  transition: none !important;
}
Run Code Online (Sandbox Code Playgroud)


Sau*_*ley 17

如果你在扩展之前发现1px跳转并且在使用CSS解决方案时崩溃之后有点烦人,这里是一个简单的Bootstrap 3 JavaScript解决方案......

只需在代码中的某处添加:

$(document).ready(
    $('.collapse').on('show.bs.collapse hide.bs.collapse', function(e) {
        e.preventDefault();
    }),
    $('[data-toggle="collapse"]').on('click', function(e) {
        e.preventDefault();
        $($(this).data('target')).toggleClass('in');
    })
);
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,问题不仅在于CSS转换本身,还在于改变高度的javascript.移动设备缺乏整体体验,使用上面的JS代码为我解决了这个问题. (4认同)

Ste*_*ude 11

也许不是这个问题的直接答案,但最近官方文档中的一个新增内容描述了如何使用jQuery 完全禁用转换:

$.support.transition = false
Run Code Online (Sandbox Code Playgroud)

如接受的答案中所述,.collapsingCSS过渡设置为无,从而删除了动画.但是 - 对我来说,这在Firefox和Chromium中 - 会在导航栏崩溃时产生不必要的视觉问题.

例如,访问Bootstrap 导航栏示例并从接受的答案中添加CSS:

.collapsing {
     -webkit-transition: none;
     transition: none;
}
Run Code Online (Sandbox Code Playgroud)

我目前看到的是当导航栏折叠时,导航栏的下边框暂时变为两个像素而不是一个像素,然后令人不安地跳回到一个像素.使用jQuery,不会出现此工件.

  • 加载`bootstrap.min.js`后,简单的`$ .support.transition = false`是不够的,但`$(function(){$ .support.transition = false;})`为我做了诀窍. (5认同)
  • 一个缺点是这会禁用全局转换,这可能是不希望的。 (2认同)