2009-11-07 186 views
47

我在www.example.com上有一个iframe指向support.example.com(这是一个到外地的CNAME)。Safari/Chrome(Webkit) - 无法隐藏iframe垂直滚动条

我自动调整我的iframe的高度,使框架不需要任何滚动条来显示所包含的网页。

在Firefox和IE上,这个工程很棒,没有滚动条,因为我使用了<iframe ... scrolling="no"></iframe>。但是,在webkit浏览器(Safari和Chrome)上,即使在没有滚动条的情况下页面有足够空间(滚动条变灰),垂直滚动条仍然存在。

如何隐藏webkit浏览器的滚动条?

+0

后人注意:这是webkit浏览器中的一个bug,后来被修复了。这里是错误报告:https://bugs.webkit.org/show_bug.cgi?id=29240 – nerdherd 2013-07-22 19:50:53

+2

你为什么不接受!? – tinybyte 2013-12-15 10:55:50

回答

2

您可以将IFRAME的overflow-y CSS属性设置为visiblehidden

+0

将overflow-y css属性设置为直接隐藏于IFRAME或所包含网页的html/body标签似乎不起作用。我能否以某种方式重写此属性? – BrainCore 2009-11-07 19:51:42

+1

-1'overflow-y'不是标准的CSS属性;它只是IE。 – 2009-11-09 19:51:13

+0

谢谢你让我知道乔希! – JasonWyatt 2009-11-09 21:07:39

11

我假设你已经试过这个,但你有没有设置滚动到iframe?

<iframe scrolling="no"> 
+0

是。不幸的是,我没有在我的文章中逃脱那个标志,所以它没有显示。 – BrainCore 2009-11-09 19:46:32

1

尝试......

iframe { overflow:hidden; } 
+3

从一开始就尝试它。不工作。不过谢谢。 – BrainCore 2009-11-09 22:04:47

61

我只是碰到了这个问题,并发现此修复程序是设置overflow: hiddeniframe内页面的HTML标签。

+4

感谢您的提示,提姆;它为我解决了这个问题。 顺便说一下,它看起来像样式的HTML元素溢出:隐藏在一个样式标签内部不起作用 - 你需要把它作为HTML标签的样式属性(即使这是无效的) 。所以...... 此: 东西 不是这个: <风格类型= “文/ CSS”> HTML {溢出:隐藏; } 东西 – Rudi 2010-08-18 18:03:01

+0

在镀铬/ 10.0.648.133似乎工作的溢出是:隐藏在''标签,为内嵌样式,甚至在外部样式表 - 虽然镀铬似乎是对于缓存外部样式表有点太积极。也许这个错误在过去几年中有所修正。 – 2011-04-09 17:06:12

+10

HTML内联样式?我现在已经看到了一切...... – 2011-05-05 20:37:18

2

检查滚动是否来自iframe,也许它来自HTML或BODY。

对于滚动iframe中

<iframe scrolling="no"> 

在CSS

iframe { overflow:hidden; } 

or 

iframe { overflow-x:hidden; overflow-y:hidden} 
1

不使用时,所有的IFRAME滚动标签,并添加样式 风格=“溢出-X:隐藏;溢出-Y:汽车;” 这将删除水平滚动,它也应该反过来。

-Jai

3

这有帮助吗?在Chrome浏览器,IE浏览器,FF ...

<style type="text/css"> 
html { overflow:hidden; } 
#test { position:absolute; top:50; left:50; right:50; bottom:50; height:2000px; } 
</style> 

<body scroll="no"> 
<div id="test">content</div> 
</body> 
2

我刚解决它在我的博客上滚动=“no”后的样式标记。

如:

iframe src="asdf.html" style="overflow: hidden;" scrolling="no" 

我留下的样式属性在那里,因为它更合适,它在Firefox的罚款。

1

隐藏的iframe中铬把body标签滚动这样

<body style="margin:0px; padding:0px; overflow:hidden;"></body> 
6

为了摆脱灰色的滚动条,把“溢出:隐藏;”在Iframe中显示的页面的主体标签上,例如<body style="overflow:hidden;">在Chrome 8.0.552.215中,我工作得很好,而且我在Iframe本身也有“溢出:隐藏”

16
Note: this is useful if you cannot edit the CSS/HTML of the iFramed content. 

这是一个黑客攻击的一位,但我通过包裹在<div>的解决了这个问题,设置<div>的高度,宽度& overflow:hidden,然后设置的宽度&高度实际溢出包装<div>

<style> 
    div {height:100px;width:100px;overflow:hidden} 
    iframe {height:150px;width:150px;overflow:hidden} 
</style> 

<div> 
    <iframe src="foo.html" scrolling="no"></iframe> 
</div> 

希望这会有所帮助。

+2

这是一个强力的办法,应该作为一种解决方法工作,缺少功能或错误:) – 2011-04-09 17:07:25

+0

只需添加溢出:隐藏的iframe的风格足以让滚动设置在Safari,Chrome和IE – nuander 2014-10-24 16:24:19

52

可以隐藏滚动条和保持滚动功能(通过触摸板或使用滚轮,或在手机或平板电脑触摸和拖拽:

<style> 
    iframe::-webkit-scrollbar { 
    display: none; 
    } 
</style> 

很明显,你可以改变iframe来什么适合你的设计,你可以添加相当于-mozilla-属性来获取它在Firefox正常工作。

+5

真棒工作对我来说,这应该是被接受的答案。 – 2012-02-08 23:20:30

+3

这就是答案。 http://www.webkit.org/blog/363/styling-scrollbars/ – iGbanam 2012-06-09 03:13:25

+0

有没有一个主持人可以使这个正确的答案? – 2012-12-05 15:26:01

2
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); }); 

这个工程,没有其他人似乎工作包括e.preventDefault()为touchstart。

0
<iframe> <body style="overflow-x: hidden"> </body> </iframe> 
0

1.当您更改iframe的滚动yes或no时,iframe的滚动条不会立即显示,您必须刷新iframe。在IFRAME

2. HTML自来水溢出colud影响iframe的滚动条

3.in的IE浏览器,你必须清除IFRAME的src,然后刷新iframe中,这将是工作

4.so,秀你的代码

HTML

<iframe id="main_ifrm" class="main" frameborder="0" scrolling="no" src="new.html" ></iframe> 
<button id="btn1">scrolling yes</button> 

的JavaScript

var ifrm = document.getElementById("main_ifrm"); 
var btn1 = document.getElementById("btn1"); 
btn1.onclick = function(){ 
    $(ifrm).prop("scrolling","no"); 
    $(ifrm.contentWindow.document).find("html").css("overflow","hidden") 
    var src = $(ifrm).prop("src"); 
    $(ifrm).prop("src",""); 
    $(ifrm).prop("src",src); 
}