Force visible scrollbar dans Firefox sur Mac OS X

Firefox 24 introduit Lion support scrollbar. Cela montrera des barres de défilement en style Lion sur Mac OS X. voir: https://wiki.mozilla.org/Lion_Scrollbars/Triage

cela pose un problème pour moi: une barre de défilement sur un div est maintenant cachée par défaut. Parfois je veux forcer une barre de défilement visible.

pour WebKit il y a une bonne solution (mentionnée à https://davidwalsh.name/osx-overflow ):

::-webkit-scrollbar {
   -webkit-appearance: none;
   width: 7px;
}

::-webkit-scrollbar-thumb {
   border-radius: 4px;
   background-color: rgba(0,0,0,.5);
   -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);
}

est-ce que quelqu'un sait comment je peux forcer un scrollbar visible dans Firefox 24 (et plus) sur Mac OS X?

y a-t-il des barres de défilement javascript qui correspondent aux barres de défilement webkit?

35
demandé sur Boschman 2013-08-19 19:33:05

4 réponses

comme utilisateur thirtydot expliqué dans une autre question, il n'y a aucun moyen de personnaliser les barres de défilement dans Firefox que son possible dans Chrome.

en outre, il n'y a aucun moyen de réellement" forcer "Firefox rendre le scrollbar vieux-style puisque le scrollbar par défaut utilisé dans le système est prédéfini par L'OS lui-même (notez que vous pouvez modifier quel scrollbar vous voulez dans les préférences du système) .

en d'autres termes, Jusqu'à ce que Firefox supporte les scrollbars personnalisés natifs, il n'est possible qu'avec des plugins JavaScript tels que jScrollPane et similaire.

22
répondu Claudio Holanda 2017-12-11 19:50:53

Voici une solution mais vous devez utiliser Javascript. Fondamentalement, il exécute une boucle qui force le navigateur à afficher les barres de défilement.

utilisez ce CSS pour vous assurer que votre div est paramétré pour afficher les barres de défilement:

.mydiv{ overflow-y:auto; }

puis attachez ce script à votre page (cela nécessite JQuery).

<script type="text/JavaScript">
var sc;
jQuery(document).ready(function(){
    //constantly update the scroll position:
    sc=setInterval(scrollDown,200);

    //optional:stop the updating if it gets a click
    jQuery('.mydiv').mousedown(function(e){
        clearInterval(sc);            
    });
});
function scrollDown(){
    //find every div with class "mydiv" and apply the fix
    for(i=0;i<=jQuery('.mydiv').length;i++){
        try{
            var g=jQuery('.mydiv')[i];
            g.scrollTop+=1;
            g.scrollTop-=1;
        } catch(e){
            //eliminates errors when no scroll is needed
        }
    }
}
</script>
3
répondu Confidant 2015-03-03 15:46:45

et overflow: -moz-scrollbars-vertical ?

0
répondu Fernando Camargo 2016-09-28 07:49:52

est-ce que ça marcherait?

html {
    overflow-y: scroll;
}

http://css-tricks.com/snippets/css/force-vertical-scrollbar /

-1
répondu groovenectar 2014-06-20 19:11:08