当前位置: 首页 > 面试题库 >

打开模式时防止BODY滚动

孙阳旭
2023-03-14
问题内容

当我的网站上的Modal打开时,我希望我的身体在使用鼠标滚轮时停止滚动。

我试图在模式打开时调用下面的一段javascript,但没有成功

$(window).scroll(function() { return false; });

$(window).live('scroll', function() { return false; });

请注意,我们的网站已放弃了对IE6的支持,不过IE7 +需要兼容。


问题答案:

在显示模式对话框时,Bootstrap会modal自动将类添加modal- open到主体,而在对话框隐藏时将其删除。因此,您可以将以下内容添加到CSS中:

body.modal-open {
    overflow: hidden;
}

您可能会争辩说,上面的代码属于Bootstrap CSS代码库,但这是将其添加到您的站点的简单解决方案

该程序现已在Twitter Bootstrap 2.3.0版中停止工作-他们不再将此类添加modal-open到正文中。

一种解决方法是在要显示模式时将类添加到主体,并在关闭模式时将其删除:

$("#myModal").on("show", function () {
  $("body").addClass("modal-open");
}).on("hidden", function () {
  $("body").removeClass("modal-open")
});

看起来modal-open该类将在Bootstrap 3.0中返回,明确地是为了防止滚动:

在主体上重新引入.modal-open(因此我们可以在此处滚动滚动条)



 类似资料:
  • 我有一个包含几个引导模式的页面,其中包括: 问题是,我有一整行可以点击的表格,比如 模态内容在下面的另一个隐藏表行中,后面跟着下一个可单击的行,依此类推。现在,这一行还包含一个按钮,单击后将转到另一个页面。 我需要整行可点击,以便它打开模式,除非点击了转到其他页面的按钮,然后我需要停止打开模式。 我需要这样的东西 但针对这一点: 我还尝试给TR一个类"modaltoggle",然后用javascr

  • 本文向大家介绍jquery弹窗时禁止body滚动条滚动的例子,包括了jquery弹窗时禁止body滚动条滚动的例子的使用技巧和注意事项,需要的朋友参考一下 当弹出一个jq提示窗口的时候,一般窗口右边还会有进度条的情况,禁止进度条方法 禁止浏览器滚动条滚动: 关闭弹出的窗口的时候需要显示出来,让浏览器窗口可以继续滚动 还原滚动: 以上这篇jquery弹窗时禁止body滚动条滚动的例子就是小编分享给大

  • 问题内容: 我有一个模态框窗口(弹出窗口),其中包含一个iframe, 并且在该 iframe中 有一个可滚动的 div 。 当我滚动iframe的内部DIV,并且达到其上限或下限时, 浏览器本身的窗口就会开始滚动。这是 不想要的行为 。 我已经尝试过类似的操作, 当鼠标进入弹出框区域时,该操作会在onMouseEnter时终止主窗口滚动: e.preventDefault()由于某些原因无法正常

  • 请看下面的脸书评论模态框。我试图实现一个类似的效果,即用户点击一个按钮,然后它会打开一个弹出/模态框。此框将允许在新框中滚动(因为它可能是许多页的文本),但不允许在主页上的模态之外滚动。当模态允许在模态窗口内滚动而不允许在其他地方滚动时,如何实现类似的效果?谢谢。

  • 问题内容: 如果转到页面a并滚动浏览,则刷新页面将在您离开页面的位置刷新。这很好,但是在URL中存在锚点位置的页面上也会发生这种情况。例如,如果您单击一个链接并在环顾四周后刷新页面,您将不会处于锚点,而页面会跳来跳去。有什么办法可以防止使用javascript吗?因此,无论如何,您始终可以导航到锚点。 问题答案: 由于浏览器行为的更改,不再建议使用此解决方案。查看其他答案。 基本上,如果使用锚,则

  • 问题内容: 如果将元素设置为,并且有一个垂直滚动条,则该元素的宽度将等于视口加上滚动条的宽度。 有可能防止这种情况吗? 是否可以在不禁用整个页面水平滚动的情况下防止这种情况?除了更改css / markup以使元素占主体宽度的100%之外,我什么都没想到。 已在Windows 8.1的Chrome版本43.0.2357.81 m和FF 36.0.1和Opera 20.0.1387.91中进行测试