Ich habe eine iframe
auf www.example.com, die auf support.example.com verweist (dies ist ein CNAME für eine fremde Domäne).
Ich skaliere automatisch die Höhe meines iframes, so dass der Frame keine Bildlaufleisten benötigt, um die enthaltene Webseite anzuzeigen.
Bei Firefox und IE funktioniert das großartig, da ich <iframe ... scrolling="no"></iframe>
verwende, gibt es keine Bildlaufleiste. Bei Webkit-Browsern (Safari und Chrome) bleibt die vertikale Bildlaufleiste jedoch bestehen, auch wenn ausreichend Platz für die Seite ohne die Bildlaufleiste vorhanden ist (die Bildlaufleiste ist ausgegraut).
Wie blende ich die Bildlaufleiste für Webkit-Browser aus?
Ich bin gerade auf dieses Problem gestoßen und habe festgestellt, dass das Problem darin bestand, overflow: hidden
für das HTML-Tag der Seite in der iframe
zu setzen.
Sie können die Bildlaufleisten ausblenden und die Bildlauffunktion beibehalten (über das Touchpad oder das Bildlaufrad oder durch Berühren und Ziehen in einem Mobiltelefon oder Tablet.)
<style>
iframe::-webkit-scrollbar {
display: none;
}
</style>
Natürlich können Sie den iframe beliebig in Ihr Design umwandeln und die entsprechende -mozilla- -Eigenschaft hinzufügen, damit sie auch in Firefox funktioniert.
Note: this is useful if you cannot edit the CSS / HTML of the iFramed content.
Es ist ein bisschen hackend, aber ich habe dieses Problem gelöst, indem ich den <iframe>
in einen <div>
wickelte, die Höhe, Breite und <div>
des overflow:hidden
festlegte und dann die Breite und Höhe des <iframe>
festlegte, um tatsächlich den Umlauf <div>
zu überlaufen.
<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>
Hoffe das hilft.
Ich gehe davon aus, dass Sie dies versucht haben, aber haben Sie das Scrollen auf dem iframe auf no gesetzt?
<iframe scrolling="no">
Um die ausgegrauten Bildlaufleisten zu entfernen, setzen Sie "overflow: hidden;" auf dem Body-Tag der Seite, die im Iframe angezeigt wird, z. <body style="overflow:hidden;">
Das hat in Chrome 8.0.552.215 gut funktioniert und ich hatte auch "overflow: hidden" auf dem Iframe
Hilft das? Funktioniert auf 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>
Ich habe es in meinem Blog mit scrolling = "no" nach dem style-Tag gelöst.
z.B:
iframe src="asdf.html" style="overflow: hidden;" scrolling="no"
Ich habe das Stilattribut dort gelassen, weil es korrekter ist und bei Firefox gut funktioniert hat.
prüfen Sie, ob die Bildlaufleiste wirklich aus dem iframe stammt, vielleicht aus dem HTML- oder BODY.
Zum Blättern im iframe
<iframe scrolling="no">
In css
iframe { overflow:hidden; }
or
iframe { overflow-x:hidden; overflow-y:hidden}
Können Sie die overflow-y
-CSS-Eigenschaft für IFRAME auf visible
oder hidden
setzen?
Bei der Verwendung von Chrome 8.0.552.224 Beta unter Ubuntu 10.10 werden auf dieser Website immer noch die Ghost-Bildlaufleisten angezeigt: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_iframe_scrolling . Ich habe alle Tricks ausprobiert, die in allen Browsern funktionieren, aber nicht in WebKit-basierten Browsern. Daher scheint der Fehler nicht vollständig behoben zu sein.
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
dies funktioniert, keiner der anderen schien zu funktionieren, einschließlich e.preventDefault()
für Touchstart.
verwenden Sie kein Scrolling-Tag at-all im iframe und fügen Sie den Stil als style = "overflow-x: hidden; overflow-y: auto;" auch weit herum.
-Jai
iframe scrollen in chrom ausblenden setzen sie den tag wie folgt
<body style="margin:0px; padding:0px; overflow:hidden;"></body>
Wenn Sie das Scrolling-Attribut des iframe auf "no" setzen, sollte das Problem beheben, scheint jedoch ein Fehler im Webkit zu liegen: https://bugs.webkit.org/show_bug.cgi?id=29240
Tims Problemumgehung ( Safari/Chrome (Webkit) - Vertikale Bildlaufleiste für iframe kann nicht ausgeblendet werden ) scheint das Problem zu beheben - , solange Sie das im iframe enthaltene Dokument bearbeiten können. .
Versuche dies...
iframe { overflow:hidden; }
<iframe> <body style="overflow-x: hidden"> </body> </iframe>
1.Wenn Sie das Scrollen von iframe ändern, wird die Bildlaufleiste des iframe nicht sofort angezeigt. Sie müssen das iframe aktualisieren.
2.Der HTML-Überlauf in iframe colud beeinflusst die Bildlaufleiste des iframe
3.im IE müssen Sie das src von iframe löschen und dann das iframe aktualisieren, es wird funktionieren
4.so zeigen Sie den Code
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);
}