在JavaScript中打开模态对话框时如何防止BODY水平滚动?

时间:2016-07-01 14:52:38

标签: javascript jquery scroll modal-dialog

我有一个文档(表格)和一个模态对话框,我可以动态生成内容。模态内容是可滚动的,并且有一个关闭按钮。当模态打开时,我想禁用基础文档在垂直和水平方向上滚动,就像浏览器(Chrome)在右键单击上下文菜单打开时一样。

我用Google搜索了问题并在此搜索。我发现的所有问题都涉及垂直滚动并说明在<body>标记上设置溢出:隐藏。一对夫妇说要添加位置:固定,有几个人说要在<html>标签上设置CSS。

<body>上设置溢出:隐藏可以正常禁用文档垂直滚动。我尝试了上面的所有其他组合,没有任何工作来禁用水平滚动。 (此外,位置:固定会搞砸页面上模态的位置。)

我在模态开放时的相关JS是:

var el = document.getElementsByTagName( 'body' );
el[0].style.overflowY = 'hidden';
el[0].style.overflowX = 'hidden';  

关于模态关闭:

var el = document.getElementsByTagName( 'body' );
el[0].style.overflowX = 'auto';
el[0].style.overflowY = 'auto';  

CodePen上有一支笔Table Play,其中包含项目的所有代码。我没有在这里重现代码,因为它很广泛而且看起来并不重要,但我肯定会添加任何进一步的代码或信息。

我正在使用JavaScript,我是一名新手自学者。我对jQuery解决方案持开放态度,但我对语法只有一点点熟悉,因此需要特定的方向。

感谢您关注我的问题以及您的时间。

0 个答案:

没有答案