Kann man mit CSS die Bildlaufleiste ausblenden? Wie würden Sie dies tun?
Scrolljacking funktioniert, ist aber fast immer eine schlechte Benutzererfahrung.
Kann man mit CSS die Bildlaufleiste ausblenden? Wie würden Sie dies tun?
Mein HTML-Code sieht folgendermaßen aus:
<div class="container">
<div class="content">
</div>
</div>
Fügen Sie dies zu Ihrem div
wo Sie die Bildlaufleiste ausblenden möchten:
.content {
position: absolute;
right: -100px;
overflow-y: auto;
overflow-x: hidden;
height: 75%; /* This can be any value of your choice */
}
Und fügen Sie dem Container Folgendes hinzu
.container {
overflow-x: hidden;
max-height: 100%;
max-width: 100%;
}
Ich habe eine WebKit-Version mit einigen Optionen wie automatisches Ausblenden , kleine Version , blättern nur-y ou nur-x :
._scrollable{
@size: 15px;
@little_version_ratio: 2;
@scrollbar-bg-color: rgba(0,0,0,0.15);
@scrollbar-handler-color: rgba(0,0,0,0.15);
@scrollbar-handler-color-hover: rgba(0,0,0,0.3);
@scrollbar-coner-color: rgba(0,0,0,0);
overflow-y: scroll;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
width: 100%;
height: 100%;
&::-webkit-scrollbar {
background: none;
width: @size;
height: @size;
}
&::-webkit-scrollbar-track {
background-color:@scrollbar-bg-color;
border-radius: @size;
}
&::-webkit-scrollbar-thumb {
border-radius: @size;
background-color:@scrollbar-handler-color;
&:hover{
background-color:@scrollbar-handler-color-hover;
}
}
&::-webkit-scrollbar-corner {
background-color: @scrollbar-coner-color;
}
&.little{
&::-webkit-scrollbar {
background: none;
width: @size / @little_version_ratio;
height: @size / @little_version_ratio;
}
&::-webkit-scrollbar-track {
border-radius: @size / @little_version_ratio;
}
&::-webkit-scrollbar-thumb {
border-radius: @size / @little_version_ratio;
}
}
&.autoHideScrollbar{
overflow-x: hidden;
overflow-y: hidden;
&:hover{
overflow-y: scroll;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
&.only-y{
overflow-y: scroll !important;
overflow-x: hidden !important;
}
&.only-x{
overflow-x: scroll !important;
overflow-y: hidden !important;
}
}
}
&.only-y:not(.autoHideScrollbar){
overflow-y: scroll !important;
overflow-x: hidden !important;
}
&.only-x:not(.autoHideScrollbar){
overflow-x: scroll !important;
overflow-y: hidden !important;
}
}
Meine Antwort wird auch dann rollen, wenn overflow:hidden;
, mit jQuery:
Führen Sie zum Beispiel einen horizontalen Bildlauf mit dem Mausrad durch:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type='text/javascript' src='/js/jquery.mousewheel.min.js'></script>
<script type="text/javascript">
$(function() {
$("YourSelector").mousewheel(function(event, delta) {
this.scrollLeft -= (delta * 30);
event.preventDefault();
});
});
</script>
Dies ist zwar mit einem guten Beispiel möglich, aber es gibt massive Probleme für Benutzer von Hilfstechnologien, wenn Sie das Scrollen deaktivieren und Javascript für das Scrollen verwenden. Wenn Sie nicht auch den Fokus auf ein Element setzen, wenn Sie für den Benutzer scrollen, dann wird Ihr AT-Benutzer völlig verloren sein. Außerdem hat jeder Benutzer jetzt keine Kontrolle mehr darüber, was er sieht. Eine sehr schlechte UX, wenn Sie das Scrollen für Ihren Benutzer übernehmen. Neben dem Mausrad müssen Sie auch die Aufwärts-/Abwärtstasten, Screenreader-Rotoren, Mausklicks und Touchpad-Steuerungen bedienen. Das wird für den Entwickler unhandlich und für den Benutzer unangenehm.
Um die vertikale Bildlaufleiste zu deaktivieren, fügen Sie einfach overflow-y:hidden;
.
Erfahren Sie mehr darüber: Überlauf .
Ich glaube, Sie können es mit dem overflow
CSS-Attribut, aber sie werden von den Browsern nur begrenzt unterstützt. Eine Quelle sagte, es sei Internet Explorer 5 (und später), Firefox 1.5 (und später) und Safari 3 (und später) - vielleicht genug für Ihre Zwecke.
Blättern, Blättern, Blättern hat eine gute Diskussion.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
5 Stimmen
@UweKeim, es gibt keinen Trick für IE11