【发布时间】:2023-04-03 11:09:01
【问题描述】:
有什么技巧可以禁用折叠组的打开/关闭动画?
【问题讨论】:
标签: javascript animation twitter-bootstrap
有什么技巧可以禁用折叠组的打开/关闭动画?
【问题讨论】:
标签: javascript animation twitter-bootstrap
对于 Bootstrap 3 和 4 它是
.collapsing {
-webkit-transition: none;
transition: none;
display: none;
}
【讨论】:
display: none 以避免最后一个崩溃的人工制品。
Bootstrap 2CSS解决方案:.collapse { transition: height 0.01s; }
注意:设置transition: none 会禁用折叠功能。
Bootstrap 4解决方案:.collapsing {
transition: none !important;
}
【讨论】:
如果您在使用 CSS 解决方案时发现展开前和折叠后的 1px 跳跃有点烦人,这里有一个简单的 JavaScript 解决方案,适用于 Bootstrap 3强>...
只需在代码中的某处添加:
$(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');
})
);
【讨论】:
也许不是对这个问题的直接回答,但最近在official documentation 中添加的内容描述了如何使用 jQuery 来完全禁用转换:
$.support.transition = false
将.collapsing CSS 过渡设置为无as mentioned in the accepted answer 删除了动画。但这——对我来说,在 Firefox 和 Chromium 中——在导航栏折叠时会产生不必要的视觉问题。
例如,访问 Bootstrap navbar example 并从接受的答案中添加 CSS:
.collapsing {
-webkit-transition: none;
transition: none;
}
我目前看到的是当导航栏折叠时,导航栏的底部边框会暂时变成两个像素而不是一个像素,然后令人不安地跳回一个像素。使用jQuery,这个神器不会出现。
【讨论】:
bootstrap.min.js 后纯 $.support.transition = false 是不够的,但 $(function() { $.support.transition = false; }) 对我有用。