Twitter Bootstrap 100% 高度手风琴“跳跃”

Posted

技术标签:

【中文标题】Twitter Bootstrap 100% 高度手风琴“跳跃”【英文标题】:Twitter Bootstrap 100% height accordion "jump" 【发布时间】:2013-05-14 22:08:30 【问题描述】:

我正在尝试使用 Twitter Bootstrap 折叠组件实现 100% 高度的手风琴,正如 question 中所述。

我正在手动设置.accordion-inner 元素的高度,如answer 中所述。

但是,我在展开/折叠面板时遇到了“弹跳”行为。我已经从 .accordion-inner 元素中删除了所有填充/边距/边框以消除这种可能性。

在 IE10 中最明显,但在 Chrome 中也很明显。

看到这个example。

任何想法是什么导致了这种“跳跃”的行为?

【问题讨论】:

它适用于铬 我已经签入了 Chromium 并且底部的“反弹”仍然存在。 是的,你是对的,没有注意到它。但坏消息是在 boostrap 文档中也有一个“反弹”:查看twitter.github.io/bootstrap/javascript.html#collapse 是的,我明白你的意思。它并不常见,所以我没有注意到它,并认为这可能与我试图使其高度为 100% 有关。 请参阅***.com/a/33697157/2208713 - 我尝试了为这个问题提供的所有解决方法答案,并发现这个答案实际上在另一个线程中有效。它归结为不直接填充扩展部分(例如面板主体),而是使用具有填充的容器 div 【参考方案1】:

聚会迟到了,但是:

我有一个类似的问题,并注意到如果我从折叠元素下方的元素中删除一个 margin-top,并用 padding-top 替换它,过渡是平滑的。

所以 - 检查相邻元素的边距,如果可能,尝试用填充替换它们。

【讨论】:

对我来说很相似,但它是 .collapse div 周围的边距。我有一个包含两个类的 div:.content.collapse.content 有边距。我将这两个类分成两个单独的 div,.collapse 包装 .content【参考方案2】:

我认为您看到的“跳跃”是由于 .collapse 类的 CSS 转换造成的。

如果您查看此 SO 线程 Turning off Twitter Bootstrap Navbar Transition animation,您可以了解如何使用覆盖 CSS 类“no-transition”来禁用转换。这不会同时停止动画,但会加快动画速度,从而使跳跃不那么明显......

no-transition 添加到您的手风琴体元素中......

<div id="collapseOne" class="accordion-body collapse in no-transition">

添加 CSS..

.no-transition 
  -webkit-transition: height 0.001s;
  -moz-transition: height 0.001s;
  -ms-transition: height 0.001s;
  -o-transition: height 0.001s;
  transition: height 0.001s;

更新了 plunker.. http://plnkr.co/edit/xnvDGcDd21iCu69wKSub?p=preview

【讨论】:

谢谢,但理想情况下我想保留动画(我不再看到)。你是说你认为这不可能吗? 您可以尝试通过增加过渡上的s 来减慢动画速度,但无论哪种方式我认为过渡都会导致“跳跃” 删除动画将“修复”问题,就像关闭某种警告将修复警告所警告的问题一样。不知道 272k 的用户是怎么回复这样的答案的…… @alexandernst 这是对 Bootstrap 2.x 的建议,近年来并不相关。感谢您抽出时间对我 7 年前的建议投反对票。【参考方案3】:

HTML:

<td><a data-toggle="collapse" href="#text1" aria-expanded="false" aria-controls="#text1"</a>
<div class="collapse" id="text1" aria-expanded="true" style="padding-top:5px"><img src="..."></div>

CSS:

 .collapse.in
    padding-bottom:5px;
 

【讨论】:

【参考方案4】:

我遇到了这种奇怪的行为,手风琴会展开到比实际可见内容大得多的高度,然后折叠(跳转)回实际可见内容高度。

事实证明,该面板的手风琴主体有一些空的 html 元素,在我的例子中是一些 divscol-sm-4 类,它们里面什么都没有。一旦我将它们注释掉,这种跳跃行为就停止了。希望这对有类似问题的人有所帮助。

【讨论】:

以上是关于Twitter Bootstrap 100% 高度手风琴“跳跃”的主要内容,如果未能解决你的问题,请参考以下文章

Twitter Bootstrap Legacy:跨度上的统一高度

100% 宽度 Twitter Bootstrap 3 模板

为啥 Twitter Bootstrap 表格总是有 100% 的宽度?

如何在 Twitter Bootstrap AngularJS 模态窗口中以 100% 宽度显示 Flot 图表

twitter bootstrap 选择 silviomore 增加高度

Twitter Bootstrap轮播不同高度图像导致弹跳箭头