我有一个包含大量内容的HTML,并且只要加载HTML就会出现垂直滚动条。现在从这个HTML加载全屏IFRAME。问题是当加载IFRAME时,父滚动条仍然存在,我想在加载Iframe时禁用滚动条。
我试过了:
document.body.scroll = "no"
,它不适用于FF和铬。document.style.overflow = "hidden";
之后,我仍然可以滚动,整个iframe将向上滚动显示父HTML。我的要求是,当加载IFRAME时,如果父HTML有一个滚动条,我们就永远不能滚动整个IFRAME。
有任何想法吗?
如果你想使用iframe的滚动条而不是父亲的滚动条,请使用:
document.body.style.overflow = 'hidden';
如果你想使用父母的滚动条而不是iframe,那么你需要使用:
document.getElementById('your_iframes_id').scrolling = 'no';
或者在iframe的标签中设置scrolling="no"
属性:<iframe src="some_url" scrolling="no">
。
用css
body,html{
overflow:hidden
}
以下JavaScript可以工作:
var page = $doc.getElementsByTagName('body')[0];
要禁用滚动使用:
page.classList.add('noscroll');
要启用滚动使用:
page.classList.remove('noscroll');
在CSS文件中,添加:
.noscroll {
position: fixed!important
}
添加此CSS
body.disable-scroll {
overflow: hidden;
}
以及何时禁用运行此代码
$("body").addClass("disable-scroll");
何时启用运行此代码
$("body").removeClass("disable-scroll")
我知道这是一个古老的问题,但我只是觉得我很重要。
我正在使用disableScroll。简单,它就像在梦中一样。
我在禁用身体上的滚动方面遇到了一些麻烦,但允许它在子元素上(如模态或侧边栏)。看起来可以使用disableScroll.on([element], [options]);
完成某些事情,但我还没有完成这项工作。
与overflow: hidden;
相比,这是优先考虑的原因是溢出隐藏可能会变得讨厌,因为有些事情可能会像这样添加overflow: hidden;
:
...这对预加载器很有用,因为它在CSS加载完成之前呈现。
但是当开放式导航应该向body
-tag(如<body class="body__nav-open">
)添加一个类时,它会产生问题。然后它变成了与overflow: hidden; !important
和各种废话的一场大拔河比赛。
答案:document.body.scroll ='不';