繁体   English   中英

打开模式对话框时可见2个滚动条

[英]2 Scrollbars visible when I open a modal dialog

我们有一个莫名其妙的问题,当我们尝试从父页面打开模式对话框时,它会打开,并且两个垂直滚动条彼此相邻。 一个控制模式框,另一控制模式框后面的主页。

具有2个滚动条并不理想,并且已尝试为此实现解决方案。 我们在对话框页面中添加了一些JavaScript,可在打开模式对话框时将样式设置为“溢出:隐藏”。

<script>
function myOnLoad() {
    window.parent.$('body').css('overflow', 'hidden');
}

并使用...

<body onload="myOnLoad()">

这有效并有效地删除了其后面页面中的滚动条(即,它做了应有的操作),但是我们还希望在模式对话框关闭时将溢出设置回“自动”。

我们通过添加此代码来完成此操作。

<script type="text/javascript">
// close Modal
$("#close").click(function () {
window.parent.$('body').css('overflow', 'auto');
window.parent.$("iframe").attr('src', '');
window.parent.$(".modalDialog").removeClass('show');
});

但是,这在模态对话框关闭时似乎不起作用,但是滚动条仍隐藏在主页上。 谁能告诉我在这里我可能做错了什么? 我尝试了不同的溢出属性,但似乎无济于事

我认为使用window.parent可能是问题所在,因为这指的是iframe的父级不复存在。 或类似的东西。 只是使用jQuery

您可以尝试通过直接获取主体$(“ body”)来进行假设,假设您正在触发点击功能。

编辑:我看到这已在上面提到

好的,尝试一下,我认为您的页面在点击时会重新加载,从而执行onload:

$("#close").click(function (e) {
e.preventDefault();
window.parent.$('body').css('overflow', 'auto');
window.parent.$("iframe").attr('src', '');
window.parent.$(".modalDialog").removeClass('show');
});

为身体添加样式

body
{
     padding-right:0px !important;
     overflow-y:hidden !important;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM