css - Twitter Bootstrap 模式打开/关闭导致固定标题跳转

标签 css twitter-bootstrap dialog modal-dialog scrollbar

我几乎完成了一个简单的 2 页网站,用于我的注册域名。 不幸的是,我有一个似乎无法解决的小问题:Twitter Bootstrap 模式打开和关闭时标题跳动。 在移动设备上没有问题。该问题仅出现在较大的视口(viewport)中,例如台式机和笔记本电脑。

如何重新创建

  1. 打开http://www.domains.cloudlabz.nl/domains在网络浏览器中,通过降低视口(viewport)高度确保获得垂直滚动条
  2. 点击其中一个蓝色的“更多信息”按钮。
  3. 注意模式打开后跳跃的标题和消失的滚动条。
  4. 关闭模式并注意标题跳回和滚动条重新出现。

检查下图(在 Opera、Safari、Firefox 和 Chrome 中结果相同):

Jumping header issue

我想要什么

我希望标题在打开/关闭模式时停止跳转。滚动条消失的事实不是问题。事实上,我希望它保持这样。

更新

我注意到跳转标题只出现在固定位置的元素上,比如我的标题(添加了 Bootstrap 类 navbar-fixed-top)。它甚至出现在 Bootstrap 网站本身:http://getbootstrap.com/javascripts .转到桌面上的“模态 > 可选尺寸”区域,然后单击其中一个按钮。您会看到右侧菜单来回跳转。

当模式打开时,类 .modal-open 被添加到 body 元素中(感谢 @Pred 指出这一点)。它在右侧添加了 15px 的填充,宽度与滚动条间距相同。这可以防止 body 来回跳跃。

不幸的是,这个填充显然不适用于固定元素。

最佳答案

当显示模态时,Bootstrap 添加 class="modal-open"padding-right: 15px;body。要删除右移并保留滚动条,请将其添加到您的 css:

body.modal-open {
  overflow: inherit;
  padding-right: 0 !important;
}

在 bootstrap 3.3.4 中试过

关于css - Twitter Bootstrap 模式打开/关闭导致固定标题跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25274244/

相关文章:

html - Bootstrap Navbar-right 错误

java - Android 在加载 URL 时显示进度对话框

android - android 对话框中的 clearFocus 不起作用

javascript - 我可以使用 jQuery 来独立定位 CSS 类的实例吗?

html - CSS - Center Font-awesome 图标

html - 覆盖从 CSS 获取高度+宽度的图像,取而代之的是 html 属性

javascript - 可扩展的缩略图网格 Twitter Bootstrap

ruby-on-rails - 使用嵌套 if 语句迭代嵌入 ruby​​ 代码块

forms - 如何以编程方式在Dijit对话框中制作和显示表单?

javascript - jQuery 插件自动附加到 li 元素?