Ist es möglich, die vertikalen und horizontalen Bildlaufleisten des Browsers mit jQuery oder Javascript zu deaktivieren?
Ist es möglich, die vertikalen und horizontalen Bildlaufleisten des Browsers mit jQuery oder Javascript zu deaktivieren?
Antworten:
Falls Sie die Möglichkeit benötigen, Bildlaufleisten dynamisch auszublenden und anzuzeigen, können Sie sie verwenden
$("body").css("overflow", "hidden");
und
$("body").css("overflow", "auto");
irgendwo in deinem Code.
oveflow: hiddenwird nichts auf Smartphones verhindern.
function reloadScrollBars() {
document.documentElement.style.overflow = 'auto'; // firefox, chrome
document.body.scroll = "yes"; // ie only
}
function unloadScrollBars() {
document.documentElement.style.overflow = 'hidden'; // firefox, chrome
document.body.scroll = "no"; // ie only
}
Bisher haben wir Überlauf: am Körper versteckt. Der IE berücksichtigt dies jedoch nicht immer und Sie müssen scroll = "no" auch auf das body-Element setzen und / oder einen Überlauf platzieren: versteckt auch auf dem HTML-Element.
Sie können dies weiter vorantreiben, wenn Sie die Kontrolle über den Ansichtsport übernehmen müssen. Sie können dies tun: -
<style>
body {width:100%; height:100%; overflow:hidden; margin:0; }
html {width:100%; height:100%; overflow:hidden; }
</style>
Ein Element, dem im Körper eine Höhe von 100% gewährt wurde, hat die volle Höhe des Fensteransichtsfensters, und das Element wird absolut mit dem unteren Rand positioniert: nnPX wird nn Pixel über dem unteren Rand des Fensters usw. festgelegt.
In modernen Versionen von IE (IE10 und höher) können Bildlaufleisten mithilfe der -ms-overflow-styleEigenschaft ausgeblendet werden .
html {
-ms-overflow-style: none;
}
In Chrome können Bildlaufleisten wie folgt gestaltet werden:
::-webkit-scrollbar {
display: none;
}
Dies ist sehr nützlich, wenn Sie in einer Webanwendung den Standard-Bildlauf verwenden möchten, der erheblich schneller ist als overflow-y: scroll.
IE hat einige Fehler mit den Bildlaufleisten. Wenn Sie also eine der beiden Optionen verwenden möchten, müssen Sie Folgendes einschließen, um die horizontale Bildlaufleiste auszublenden:
overflow-x: hidden;
overflow-y:scroll;
und vertikal zu verstecken:
overflow-y: hidden;
overflow-x: scroll;
(Ich kann noch keinen Kommentar abgeben, wollte dies aber teilen):
Lyncees Code funktionierte für mich im Desktop-Browser. Auf dem iPad (Chrome, iOS 9) stürzte die Anwendung jedoch ab. Um das Problem zu beheben, habe ich mich geändert
document.documentElement.style.overflow = ...
zu
document.body.style.overflow = ...
was mein Problem gelöst hat.