Firefox 64 ajoute la prise en charge du projet de spécification Module CSS Scrollbars Niveau 1 qui ajoute deux nouvelles propriétés de scrollbar-width
y scrollbar-color
qui permettent de contrôler l'affichage des barres de défilement.
Vous pouvez définir scrollbar-color
à l'une des valeurs suivantes (descriptions tirées de MDN) :
-
auto
Rendu par défaut de la plate-forme pour la partie piste de la barre de défilement, en l'absence de toute autre propriété de couleur de la barre de défilement.
-
<color>
<color>
Applique la première couleur au pouce de la barre de défilement, la seconde à la piste de la barre de défilement.
Auparavant, le cahier des charges comprenait dark
y light
valeurs ce que n'ont pas été implémentées dans Firefox . Ces valeurs ont depuis été supprimées de la spécification.
De plus, dans les versions antérieures à 99.0 de macOS Firefox, les barres de défilement semi-transparentes à masquage automatique, qui sont le mode par défaut de macOS, ne pouvaient pas être stylisées par ces règles. Depuis Firefox 99.0, tous les modes de barres de défilement de macOS (configurés sous Préférences système > Afficher les barres de défilement) peuvent être colorés.
Démonstration visuelle :
.scroll {
width: 20%;
height: 100px;
border: 1px solid grey;
overflow: scroll;
display: inline-block;
}
.scroll-color-auto {
scrollbar-color: auto;
}
.scroll-color-dark {
scrollbar-color: dark;
}
.scroll-color-light {
scrollbar-color: light;
}
.scroll-color-colors {
scrollbar-color: orange lightyellow;
}
<div class="scroll scroll-color-auto">
<p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p>
</div>
<div class="scroll scroll-color-dark">
<p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p>
</div>
<div class="scroll scroll-color-light">
<p>light</p><p>light</p><p>light</p><p>light</p><p>light</p><p>light</p>
</div>
<div class="scroll scroll-color-colors">
<p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p>
</div>
Vous pouvez définir scrollbar-width
à l'une des valeurs suivantes (descriptions tirées de MDN) :
-
auto
Largeur de la barre de défilement par défaut pour la plate-forme.
-
thin
Une variante de largeur de barre de défilement fine sur les plateformes qui offrent cette option, ou une barre de défilement plus fine que la largeur de barre de défilement par défaut de la plateforme.
-
none
Aucune barre de défilement n'est affichée, mais l'élément peut toujours être défilé.
Vous pouvez également définir une valeur de longueur spécifique, en fonction des spécifications. Les deux thin
et une longueur spécifique peut ne rien faire sur toutes les plateformes, et ce qu'elle fait exactement est spécifique à la plateforme. En particulier, Firefox ne semble pas supporter actuellement une valeur de longueur spécifique ( ce commentaire sur leur bug tracker semble le confirmer ). Les thin
Keywork semble toutefois bien pris en charge, du moins sous macOS et Windows.
Il est probablement utile de noter que l'option de la valeur de la longueur et l'ensemble de la fonction scrollbar-width
sont envisagées pour être supprimées dans un futur projet, et si cela se produit, cette propriété particulière pourrait être supprimée de Firefox dans une future version.
Démonstration visuelle :
.scroll {
width: 30%;
height: 100px;
border: 1px solid grey;
overflow: scroll;
display: inline-block;
}
.scroll-width-auto {
scrollbar-width: auto;
}
.scroll-width-thin {
scrollbar-width: thin;
}
.scroll-width-none {
scrollbar-width: none;
}
<div class="scroll scroll-width-auto">
<p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p>
</div>
<div class="scroll scroll-width-thin">
<p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p>
</div>
<div class="scroll scroll-width-none">
<p>none</p><p>none</p><p>none</p><p>none</p><p>none</p><p>none</p>
</div>
1 votes
Veuillez nous expliquer comment vous pouvez le faire en utilisant jQuery. Je suis confronté au même problème mais j'ai utilisé CSS pour le résoudre pour Webkit. Cependant, Firefox pose un problème que votre solution jQuery pourrait résoudre.
1 votes
Je recommande d'utiliser le plugin jQuery jscrollpane.
0 votes
Il y a un problème avec jScrollPane dans Firefox. jScrollPane fonctionne parfaitement dans Chrome mais dans Firefox vous avez une fenêtre vide. système barre de défilement à droite de la barre de défilement du jScrollPane. Il ne doit y avoir qu'une seule barre de défilement
1 votes
Ce n'est pas vrai. Si c'est le cas, c'est que vous avez commis une erreur quelque part.
0 votes
Voir ma réponse ici : stackoverflow.com/questions/7357203/custom-scrollbars/
0 votes
J'aimerais recommander
fakescroll
- Un petit script vanilla-js pour des barres de défilement personnalisées0 votes
J'ai ajouté un aperçu de la solution : stackoverflow.com/a/70909679/14824067 . Et pourquoi tant d'entre eux utilisent-ils jquery ; )