javascript - Bootstrap 响应式折叠子菜单在第一次折叠时具有固定高度

标签 javascript css twitter-bootstrap

这个问题可以在所有(我知道的)Twitter Bootstrap 版本中出现。所以,我有一个导航栏,当屏幕变小时,它变成了一个可折叠的托盘。可以在 bootstrap 演示站点上看到此行为。我还有子菜单,它们在最初的导航栏展开时看起来是折叠的。问题是,在第一次折叠时,可折叠对象会得到一个明确的高度集。如果您关闭并再次展开,可折叠对象会得到一个 height:auto;

因此,当我单击子菜单项时,下拉菜单会展开,但由于已明确设置高度,它会溢出。

我尝试的解决方案是添加:

$(function() {
  $('.nav-collapse').on({
    shown: function() {
      $(this).css('height', 'auto');
    },

    hidden: function() {
      $(this).css('height', '0px');
    }
  });
}); 

这个好像完全没有影响,我把那段代码删掉了,还是一样的效果。如果 JS Fiddle 有帮助,我很乐意提供一个,但您可以在 Bootstrap 演示站点上看到所有这些内容。

提前致谢, 查尔斯。

最佳答案

有点困扰,经过一番查找,发现可以通过在.nav-collapse元素中添加.collapse类来解决问题。

Working demo (jsfiddle)

有一次我们只是说 Meh.. 我应该严格按照文档(参见 Responsive navbar ):

<div class="nav-collapse collapse">
    <!-- .nav, .navbar-search, .navbar-form, etc -->
</div>

为了后代:

感谢这个问题:https://github.com/twitter/bootstrap/issues/3788

我不确定它是否真的相关,但我的调试显示无论如何在第一个过渡高度重置时出现问题(source):

$.support.transition && this.$element[dimension](this.$element[0][scroll])

关于javascript - Bootstrap 响应式折叠子菜单在第一次折叠时具有固定高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735747/

相关文章:

html - 将提交按钮显示为图像

html - 如何更改 li 元素的背景颜色

twitter-bootstrap - 如何实现 Bootstrap 列之间文本段落的垂直对齐

javascript - 如何按顺序从日期数组中获取年份

javascript - Webpack "devtool eval"在 devtools 中没有显示正确的文件内容

css - Pagespeed 警告 - 在图像元素上使用明确的宽度和高度

css - bootstrap 3 navbar-right 没有带 navbar-fixed-top 的填充

javascript - JS : Event not showing in Google Analytics

javascript - AngularFire $loaded 永远不会触发

javascript - 检查 JavaScript 中 CSS3 动画当前是否正在 DOM 元素上运行