如何禁用滚动文档正文?

Man*_*har 22 html javascript ajax xhtml

我有一个包含大量内容的HTML,并且只要加载HTML就会出现垂直滚动条.现在从这个HTML加载全屏IFRAME.问题是当加载IFRAME时,父滚动条仍然存在,我想在加载Iframe时禁用滚动条.

我试过了:

  • document.body.scroll = "no",它不适用于FF和chrome.
  • document.style.overflow = "hidden"; 在此之后我仍然可以滚动,整个iframe将向上滚动显示父HTML.

我的要求是,当加载IFRAME时,如果父HTML有一个滚动条,我们就永远不能滚动整个IFRAME.

有任何想法吗?

nto*_*end 30

如果你想使用iframe的滚动条而不是父亲的滚动条,请使用:

document.body.style.overflow = 'hidden';
Run Code Online (Sandbox Code Playgroud)

如果你想使用父母的滚动条而不是iframe,那么你需要使用:

document.getElementById('your_iframes_id').scrolling = 'no';
Run Code Online (Sandbox Code Playgroud)

或者scrolling="no"在iframe的标签中设置属性:<iframe src="some_url" scrolling="no">.


Beh*_*adi 9

用css

body,html{
  overflow:hidden
}
Run Code Online (Sandbox Code Playgroud)

  • 你能解释一下为什么它是“body, html {”而不仅仅是简单的“body {”吗? (2认同)

小智 5

以下JavaScript可以工作:

var page = $doc.getElementsByTagName('body')[0];
Run Code Online (Sandbox Code Playgroud)

要禁用滚动使用:

page.classList.add('noscroll');
Run Code Online (Sandbox Code Playgroud)

要启用滚动使用:

page.classList.remove('noscroll');
Run Code Online (Sandbox Code Playgroud)

在CSS文件中,添加:

.noscroll {
    position: fixed!important
}
Run Code Online (Sandbox Code Playgroud)