Safari / Chrome(Webkit) – 无法隐藏iframe垂直滚动条
我在www.example.com上有一个iframe
指向support.example.com(这是一个到外地的CNAME)。
我自动调整我的iframe的高度,以便框架不需要任何滚动条来显示所包含的网页。
在火狐浏览器和IE浏览器这个伟大的作品,没有滚动条,因为我使用<iframe ... scrolling="no"></iframe>
。 但是,在webkit浏览器(Safari和Chrome)上,即使在没有滚动条的情况下页面有足够的空间(滚动条变灰),垂直滚动条仍然存在。
如何隐藏Webkit浏览器的滚动条?
我刚刚遇到了这个问题,并发现修复是设置overflow: hidden
在iframe
中的页面的HTML标记。
您可以隐藏滚动条并保持滚动function(通过触摸板或滚轮,或者使用手机或平板电脑触摸并拖动):
<style> iframe::-webkit-scrollbar { display: none; } </style>
显然,你可以将iframe更改为适合你devise的任何东西,并且你可以添加相当于-mozilla属性来使它在firefox中工作。
Note: this is useful if you cannot edit the CSS / HTML of the iFramed content.
这是一个黑客,但我解决了这个问题,将<iframe>
包装在<div>
,设置<div>
的高度,宽度和overflow:hidden
,然后设置<iframe>
的宽度和高度实际上溢出包装<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>
希望这可以帮助。
我假设你已经尝试过这个,但是你在iframe上设置滚动到否?
<iframe scrolling="no">
为了摆脱灰色的滚动条,把“overflow:hidden” 在iframe中显示的页面的body标签上,例如<body style="overflow:hidden;">
在Chrome 8.0.552.215中,我工作的很好,而且iframe本身也有“overflow:hidden”
这有帮助吗? 适用于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>
你可以设置IFRAME的overflow-y
CSS属性为visible
或hidden
?
检查滚动是否是从iframe,也许是从HTML或BODY。
在iframe中滚动
<iframe scrolling="no">
在CSS中
iframe { overflow:hidden; } or iframe { overflow-x:hidden; overflow-y:hidden}
我只是在样式标签后面用滚动=“no”在博客上解决了这个问题。
例如:
iframe src="asdf.html" style="overflow: hidden;" scrolling="no"
我把style属性留在那里,因为它更合适,而且在Firefox上工作的很好。
在Ubuntu 10.10下使用Chrome 8.0.552.224testing版,仍然显示这个网站上的鬼滚动条: http : //www.w3schools.com/TAGS/tryit.asp ?filename=tryhtml_iframe_scrolling。 我尝试了所有的技巧,在所有的浏览器中都能正常工作,而不是在基于WebKit的浏览器中。 所以这个bug似乎并没有完全解决。
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
这工作,没有其他人似乎工作,包括e.preventDefault()
touchstart。
尝试这个…
iframe { overflow:hidden; }
不要在iframe上使用滚动标签,并添加样式为style =“overflow-x:hidden; overflow-y:auto;” 这将删除水平滚动,它也应该反过来。
-Jai
将iframe的滚动属性设置为“no” 应该可以解决这个问题,但是在webkit中似乎存在一个错误: https ://bugs.webkit.org/show_bug.cgi ? id = 29240
Tim的解决方法( Safari / Chrome(Webkit) – 无法隐藏iframe垂直滚动条 )似乎解决了这个问题 – 只要你有能力编辑iframe包含的文件…
隐藏iframe滚动在铬放置身体标签像这样
<body style="margin:0px; padding:0px; overflow:hidden;"></body>
<iframe> <body style="overflow-x: hidden"> </body> </iframe>
1.当您更改iframe的滚动yes或no时,iframe的滚动条不会立即显示,您必须刷新iframe。
2. iframe colud中的html tap overflow会影响iframe的滚动条
3.在IE中,你必须清除iframe的src,然后刷新iframe,这将是工作
所以,告诉你的代码
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); }