如何禁用滚动文档正文?
我有一个有很多内容的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">
。
下面的JavaScript可以工作:
var page = $doc.getElementsByTagName('body')[0];
要禁用滚动使用:
page.classList.add('noscroll');
要启用滚动使用:
page.classList.remove('noscroll');
在CSS文件中添加:
.noscroll {
position: fixed!important
}
职位:固定;是我的解决方案 – StackHola 2014-06-27 08:38:46
请注意,当使用位置:固定时,身体的滚动位置将移动到顶部,可能会令人不安 – 2015-08-26 03:09:33
与CSS
body,html{
overflow:hidden
}
添加此CSS
body.disable-scroll {
overflow: hidden;
}
当禁用运行这段代码
$("body").addClass("disable-scroll");
以及何时启动运行这段代码
$("body").removeClass("disable-scroll")
除了请在样式表中而不是在Javascript中执行此操作:-) – Pointy 2010-03-18 12:26:01
同意。好点子。 – ntownsend 2010-03-19 12:47:13
感谢您的投入。我做错了,它按照解释的方式工作。 – Manohar 2010-03-22 04:10:24