Bewerben Sie sich overflow:auto;einfach darauf <div>. Noch mehr Hintergrundinformationen?
Rob W
Ich habe das getan, aber ich brauche benutzerdefinierte Bildlaufleiste, ähm .. Design der Bildlaufleiste
Harisdev
Freiwählbare Farbe? Dies wird nur im Internet Explorer und nicht in anderen modernen Browsern unterstützt. Dies kann mit reinem CSS nicht erreicht werden.
Ich dachte, es wäre hilfreich, die neuesten Informationen zu Bildlaufleisten, CSS und Browserkompatibilität zu konsolidieren.
Bildlaufleiste CSS-Unterstützung
Derzeit gibt es keine browserübergreifenden CSS-Stildefinitionen für die Bildlaufleiste. Der W3C-Artikel, den ich am Ende erwähne, enthält die folgende Aussage und wurde kürzlich aktualisiert (10. Oktober 2014):
Einige Browser (IE, Konqueror) unterstützen die nicht standardmäßigen Eigenschaften "Bildlaufleisten-Schattenfarbe", "Bildlaufleisten-Spurfarbe" und andere. Diese Eigenschaften sind unzulässig: Sie sind weder in einer CSS-Spezifikation definiert noch als proprietär gekennzeichnet (indem ihnen "-vendor-" vorangestellt wird).
Microsoft
Wie bereits erwähnt, unterstützt Microsoft das Styling von Bildlaufleisten, jedoch nur für IE8 und höher.
/* pseudo elements */::-webkit-scrollbar {}::-webkit-scrollbar-button {}::-webkit-scrollbar-track {}::-webkit-scrollbar-track-piece {}::-webkit-scrollbar-thumb {}::-webkit-scrollbar-corner {}::-webkit-resizer {}/* pseudo class selectors */:horizontal:vertical:decrement:increment:start:end:double-button:single-button:no-button:corner-present:window-inactive
Firefox (Gecko)
Ab Version 64 unterstützt Firefox die Gestaltung von Bildlaufleisten durch die Eigenschaften scrollbar-color(teilweise W3C-Entwurf ) und scrollbar-width( W3C-Entwurf ). Einige gute Informationen zur Implementierung finden Sie in dieser Antwort .
Browserübergreifende Gestaltung der Bildlaufleiste
JavaScript-Bibliotheken und Plug-Ins können eine browserübergreifende Lösung bieten. Es gibt viele Möglichkeiten.
Die Liste könnte weitergehen. Am besten suchen, recherchieren und testen Sie die verfügbaren Lösungen. Ich bin sicher, dass Sie etwas finden werden, das Ihren Bedürfnissen entspricht.
Verhindern Sie das illegale Styling der Bildlaufleiste
Nur für den Fall, dass Sie ein Bildlaufleisten-Styling verhindern möchten, dem nicht "-vendor" vorangestellt wurde, enthält dieser Artikel bei W3C einige grundlegende Anweisungen . Grundsätzlich müssen Sie einem Benutzer-Stylesheet, das Ihrem Browser zugeordnet ist, das folgende CSS hinzufügen. Diese Definitionen überschreiben ungültige Bildlaufleisten auf jeder Seite, die Sie besuchen.
Das Web gibt es seit über zwei Jahrzehnten, und es gibt immer noch keine Standardmethode zum Stylen von Bildlaufleisten. Zwanzig Jahre Normungsausschüsse bemerken nicht, dass Menschen Dinge scrollen. Es gibt keine Rate langsamen, sarkastischen Klatschens, die angemessen ausdrücken würde, wie ich mich dabei fühle. Aber eine Verzögerung von 20 Jahren zwischen dem ersten und dem zweiten Klatschen wäre meiner Meinung nach angemessen. Aus irgendeinem Grund war ich noch nicht geboren, als das WWW herauskam, und jetzt bin ich Computeringenieur. Gut gemacht, W3C.
Parthian Shot
3
Nur um meine zwei Cent hinzuzufügen: Google Mail und Youtube haben die Bildlaufleiste in Chrome und die native in Explorer und Firefox stilisiert. Wenn diese Standards gut genug für sie sind, ist es auch gut genug für mich
yonatanmn
9
@ PaulD.Waite Na ja, vielleicht, aber das kann auf alles angewendet werden. Und CSS existiert genau als Sprache, damit Designer die Standardeinstellungen überschreiben können. Die ganze Idee ist, dass ein schlechter UI-Designer jedes Element unintuitiv machen kann. Wenn Sie jedoch davon ausgehen, dass der Site-Designer inkompetent ist, was bringt es, überhaupt eine Seitenanpassung zuzulassen?
Parthian Shot
6
@ PaulD.Waite Klar, das ist nicht eines dieser Dinge. Zum einen, weil es sich um den Bereich des Bildschirms handelt, den der Site-Designer ohnehin vollständig kontrollieren sollte, sodass kein Sicherheitsrisiko besteht, und zum anderen, weil es in der Praxis eindeutig kein Problem darstellt. Viele Websites implementieren ihre eigenen Hacks, um Dinge zu erstellen, die wie Bildlaufleisten aussehen und sich verhalten, und sie funktionieren einwandfrei. Sie funktionieren nicht nur gut und sehen besser aus, sondern die Leute verstehen auch, wie man sie benutzt, worum es geht. Leider, weil sie Hacks sind, spielen sie manchmal nicht gut mit Dingen wie Druckfunktionen.
Parthian Shot
5
Diese Antwort geht nicht vollständig auf seine Frage ein, wie Bildlaufleistenstile auf ein bestimmtes Div und nicht auf eine ganze Seite angewendet werden sollen.
Es handelt sich um eine Bildlaufleiste des jQuery-Plugins, sodass Ihre Bildlaufleisten steuerbar sind und in den verschiedenen Betriebssystemen gleich aussehen.
Ich bin sicher, dass es wahrscheinlich anpassbar ist, aber die Demo auf ihrer Seite scrollt viel zu langsam und die Bildlaufleiste ist viel zu schwer zu greifen.
Gans
4
Wie praktisch alle jQuery-Plugins - [shudders] - ist dies im Vergleich zu nativen, GPU-beschleunigten Scroll-Implementierungen mit Threading äußerst langsam. Völlig ungeeignet für ernsthafte Anwendungen und ein Hindernis für eine gute UX. Ich würde empfehlen, dies zu vermeiden, es sei denn, es handelt sich um eine Spielzeug-Website.
John Weisz
2
Ich hasse es, wenn Leute etwas reines Javascript nennen, dann BAM! ein jquery Plugin.
Dinh Tran
Ich würde die Verwendung von nicescroll nicht empfehlen, da dadurch die Browserfunktion deaktiviert wird. Das Scrollen mit dem mittleren Klick funktioniert nicht mit Nicescroll.
Aloso
Ich liebe dieses niceScroll, es fügt keinen Wrapper div um das Element hinzu, was bedeutet, dass es die HTML-Struktur nicht zerstört
datdinhquoc
11
Benutzerdefinierte Bildlaufleisten sind mit CSS nicht möglich. Sie benötigen etwas JavaScript-Magie.
Einige Browser unterstützen nicht spezifizierte CSS-Regeln, wie z. B. ::-webkit-scrollbarin Webkit, sind jedoch nicht ideal, da sie nur in Webkit funktionieren. IE hatte so etwas auch, aber ich glaube nicht, dass sie es mehr unterstützen.
Wie viele Menschen suchte ich nach etwas, das war:
In den meisten modernen Browsern einheitlich gestaltet und funktionsfähig
Nicht irgendeine lächerliche aufgeblähte jQuery-Erweiterung cr * p mit 3000 Zeilen
... aber leider nichts!
Nun, wenn sich ein Job lohnt ... Ich konnte in etwa 30 Minuten etwas zum Laufen bringen. Haftungsausschluss: Es gibt einige bekannte (und wahrscheinlich noch unbekannte) Probleme, aber ich frage mich, wofür in aller Welt die anderen 2920 JS-Zeilen in vielen Angeboten da sind!
Ich habe viele Plugins ausprobiert, die meisten unterstützen nicht alle Browser. Ich bevorzuge iScroll und nanoScroller funktioniert für alle diese Browser:
Danke für die Demo. Ich habe es zuerst mit Firefox 58.0.2 (64-Bit, Windows 7 Pro / 64) ausgeführt und alle Bildlaufleisten waren identisch. Dann lief mit Chrome Version 65.0.3325.162 (Official Build) (64-Bit) und sie waren alle unterschiedlich. Sie haben also (möglicherweise unbeabsichtigt) die Grenzen des -webkit-Ansatzes aufgezeigt.
CODE-REaD
4
Die neue Version von Firefox (64) unterstützt das CSS-Bildlaufleistenmodul Level 1
Eine präzisere Antwort. IMHO beantwortete es tatsächlich die Frage des OP, wie man nur einen Div stylt. Nett.
Danimal Reks
2
Es gibt eine Möglichkeit, benutzerdefinierte Bildlaufleisten auf benutzerdefinierte div-Elemente in Ihren HTML-Dokumenten anzuwenden. Hier ist ein Beispiel, das hilft. https://codepen.io/adeelibr/pen/dKqZNb Aber als Kern davon. Sie können so etwas tun.
Dies ist, was Google in einigen seiner Anwendungen seit langem verwendet. Sehen Sie im Code, dass beim Anwenden der nächsten Klassen die Bildlaufleiste in Chrome irgendwie ausgeblendet wird, dies jedoch weiterhin funktioniert.
Die Klassen sind jfk-scrollbar, jfk-scrollbar-borderlessundjfk-scrollbar-dark
Ich fand es gerade nützlich, die Pfeile aus den Bildlaufleisten zu entfernen. Ab 2015 wird es in Google Maps verwendet, wenn nach Stellen in der Ergebnisliste in der Benutzeroberfläche für das Materialdesign gesucht wird.
Ich habe viele JS- und CSS-Schriftrollen ausprobiert und fand, dass diese sehr einfach zu verwenden und auf IE, Safari und FF zu testen waren und gut funktionierten
AS @thebluefox schlägt vor
So funktioniert es
Fügen Sie das folgende Skript zum hinzu
<scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><scripttype="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script><scripttype="text/javascript"src="jquery.ui.touch-punch.min.js"></script><scripttype="text/javascript"src="facescroll.js"></script><scripttype="text/javascript">
jQuery(function(){// on page DOM load
$('#demo1').alternateScroll();
$('#demo2').alternateScroll({'vertical-bar-class':'styled-v-bar','hide-bars':false});})</script>
Und das hier in dem Absatz, in dem Sie scrollen müssen
<divid="demo1"style="width:300px;height:250px;padding:8px;resize:both;overflow:scroll">
**Your Paragraph Comes Here**
</div>
Webkit-Browser (wie Chrome, Safari und Opera) unterstützen die nicht standardmäßige :: - Webkit-Bildlaufleiste , mit dem wir das Aussehen der Bildlaufleiste des Browsers ändern können.
Hinweis: Die :: - Webkit-Bildlaufleiste wird von Firefox oder IE und Edge nicht unterstützt.
<divclass="box"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div><div><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate</p></div>
overflow:auto;
einfach darauf<div>
. Noch mehr Hintergrundinformationen?Antworten:
Ich dachte, es wäre hilfreich, die neuesten Informationen zu Bildlaufleisten, CSS und Browserkompatibilität zu konsolidieren.
Bildlaufleiste CSS-Unterstützung
Derzeit gibt es keine browserübergreifenden CSS-Stildefinitionen für die Bildlaufleiste. Der W3C-Artikel, den ich am Ende erwähne, enthält die folgende Aussage und wurde kürzlich aktualisiert (10. Oktober 2014):
Microsoft
Wie bereits erwähnt, unterstützt Microsoft das Styling von Bildlaufleisten, jedoch nur für IE8 und höher.
Beispiel:
Chrome & Safari (WebKit)
Ebenso hat WebKit jetzt eine eigene Version:
In benutzerdefinierten Bildlaufleisten in WebKit wird relevantes CSS angezeigt:
Firefox (Gecko)
Ab Version 64 unterstützt Firefox die Gestaltung von Bildlaufleisten durch die Eigenschaften
scrollbar-color
(teilweise W3C-Entwurf ) undscrollbar-width
( W3C-Entwurf ). Einige gute Informationen zur Implementierung finden Sie in dieser Antwort .Browserübergreifende Gestaltung der Bildlaufleiste
JavaScript-Bibliotheken und Plug-Ins können eine browserübergreifende Lösung bieten. Es gibt viele Möglichkeiten.
Die Liste könnte weitergehen. Am besten suchen, recherchieren und testen Sie die verfügbaren Lösungen. Ich bin sicher, dass Sie etwas finden werden, das Ihren Bedürfnissen entspricht.
Verhindern Sie das illegale Styling der Bildlaufleiste
Nur für den Fall, dass Sie ein Bildlaufleisten-Styling verhindern möchten, dem nicht "-vendor" vorangestellt wurde, enthält dieser Artikel bei W3C einige grundlegende Anweisungen . Grundsätzlich müssen Sie einem Benutzer-Stylesheet, das Ihrem Browser zugeordnet ist, das folgende CSS hinzufügen. Diese Definitionen überschreiben ungültige Bildlaufleisten auf jeder Seite, die Sie besuchen.
Doppelte oder ähnliche Fragen / Quelle, die oben nicht verlinkt sind
Hinweis: Diese Antwort enthält Informationen aus verschiedenen Quellen. Wenn eine Quelle verwendet wurde, wird diese auch in dieser Antwort verlinkt.
quelle
Probieren Sie es aus
Quelle: https://nicescroll.areaaperta.com/
Einfache Implementierung
Es handelt sich um eine Bildlaufleiste des jQuery-Plugins, sodass Ihre Bildlaufleisten steuerbar sind und in den verschiedenen Betriebssystemen gleich aussehen.
quelle
Benutzerdefinierte Bildlaufleisten sind mit CSS nicht möglich. Sie benötigen etwas JavaScript-Magie.
Einige Browser unterstützen nicht spezifizierte CSS-Regeln, wie z. B.
::-webkit-scrollbar
in Webkit, sind jedoch nicht ideal, da sie nur in Webkit funktionieren. IE hatte so etwas auch, aber ich glaube nicht, dass sie es mehr unterstützen.quelle
Wie viele Menschen suchte ich nach etwas, das war:
... aber leider nichts!
Nun, wenn sich ein Job lohnt ... Ich konnte in etwa 30 Minuten etwas zum Laufen bringen. Haftungsausschluss: Es gibt einige bekannte (und wahrscheinlich noch unbekannte) Probleme, aber ich frage mich, wofür in aller Welt die anderen 2920 JS-Zeilen in vielen Angeboten da sind!
quelle
Ich habe viele Plugins ausprobiert, die meisten unterstützen nicht alle Browser. Ich bevorzuge iScroll und nanoScroller funktioniert für alle diese Browser:
Aber iScroll funktioniert nicht mit Touch!
Demo iScroll : http://lab.cubiq.org/iscroll/examples/simple/
Demo nanoScroller : http://jamesflorentino.github.io/nanoScrollerJS/
quelle
Bitte überprüfen Sie diesen Link. Beispiel mit funktionierender Demo
CSS-Bildlaufleisten
quelle
-webkit-
Ansatzes aufgezeigt.Die neue Version von Firefox (64) unterstützt das CSS-Bildlaufleistenmodul Level 1
Quelle: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
https://codepen.io/fatihhayri/pen/pqdrbd
quelle
Hier ist ein Webkit-Beispiel, das für Chrome und Safari funktioniert:
CSS:
Ausgabe:
quelle
gab mir ein schönes mobile / osx wie eines.
quelle
Es gibt eine Möglichkeit, benutzerdefinierte Bildlaufleisten auf benutzerdefinierte div-Elemente in Ihren HTML-Dokumenten anzuwenden. Hier ist ein Beispiel, das hilft. https://codepen.io/adeelibr/pen/dKqZNb Aber als Kern davon. Sie können so etwas tun.
Die CSS-Datei sieht so aus.
quelle
Dies ist, was Google in einigen seiner Anwendungen seit langem verwendet. Sehen Sie im Code, dass beim Anwenden der nächsten Klassen die Bildlaufleiste in Chrome irgendwie ausgeblendet wird, dies jedoch weiterhin funktioniert.
Die Klassen sind
jfk-scrollbar
,jfk-scrollbar-borderless
undjfk-scrollbar-dark
http://jsfiddle.net/76kcuem0/32/
Ich fand es gerade nützlich, die Pfeile aus den Bildlaufleisten zu entfernen. Ab 2015 wird es in Google Maps verwendet, wenn nach Stellen in der Ergebnisliste in der Benutzeroberfläche für das Materialdesign gesucht wird.
quelle
Die Webkit-Bildlaufleiste wird von den meisten Browsern nicht unterstützt.
Unterstützt auf CHROM
Eine andere Methode ist Jquery Scroll Bar Plugin
Es unterstützt alle Browser und ist einfach anzuwenden
DEMO
quelle
Ich habe viele JS- und CSS-Schriftrollen ausprobiert und fand, dass diese sehr einfach zu verwenden und auf IE, Safari und FF zu testen waren und gut funktionierten
AS @thebluefox schlägt vor
So funktioniert es
Fügen Sie das folgende Skript zum hinzu
Und das hier in dem Absatz, in dem Sie scrollen müssen
Weitere Details finden Sie auf der Plugin-Seite
FaceScroll Benutzerdefinierte Bildlaufleiste
ich hoffe es hilft
quelle
Für Leute, die immer noch nach einer guten Lösung suchen, finde ich diese Plugin Simplebar heraus
In meinem Fall suchte ich nach ReactJS-Lösungen. Der Autor bietet auch Wrapper für React, Angular, Vue und die nächsten Beispiele
quelle
Webkit-Browser (wie Chrome, Safari und Opera) unterstützen die nicht standardmäßige :: - Webkit-Bildlaufleiste , mit dem wir das Aussehen der Bildlaufleiste des Browsers ändern können.
Hinweis: Die :: - Webkit-Bildlaufleiste wird von Firefox oder IE und Edge nicht unterstützt.
Referenz: So erstellen Sie eine benutzerdefinierte Bildlaufleiste
quelle
In Firefox +64 funktioniert nur CSS
Weitere Informationen: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars
quelle
Angenommen, Sie haben das div als
Wenden Sie CSS-Stile als an
Der resultierende Bildlauf wird als angezeigt
quelle
Oder verwenden Sie so etwas:
Und initialisieren:
Und anpassen:
quelle