it-swarm.com.de

Sichtbare Bildlaufleiste in Firefox unter Mac OS X erzwingen

In Firefox 24 wurde die Lion-Scrollbar-Unterstützung eingeführt. Dies zeigt Bildlaufleisten im Lion-Stil unter Mac OS X an. Siehe: https://wiki.mozilla.org/Lion_Scrollbars/Triage

Dies verursacht ein Problem für mich: Eine Bildlaufleiste in einem Div ist jetzt standardmäßig ausgeblendet. Manchmal möchte ich eine sichtbare Bildlaufleiste erzwingen.

Für WebKit gibt es eine Nice-Lösung (erwähnt unter 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);
}

Weiß jemand, wie ich in Firefox 24 (und höher) unter Mac OS X eine sichtbare Bildlaufleiste erzwingen kann?

Gibt es Drop-In-JavaScript-Bildlaufleisten, die mit Webkit-Bildlaufleisten übereinstimmen?

35
Boschman

Als Benutzer thirtydot erklärt in einer anderen Frage gibt es keine Möglichkeit, Bildlaufleisten in Firefox so anzupassen, wie es in Chrome möglich ist.

Es gibt auch keine Möglichkeit, Firefox tatsächlich zum "Erzwingen" des Renderns der Bildlaufleiste im alten Stil zu bewegen, da die im System verwendete Standard-Bildlaufleiste vom Betriebssystem selbst vordefiniert ist . (Beachten Sie, dass Sie die gewünschte Bildlaufleiste in den Systemeinstellungen ändern können) .

Mit anderen Worten, bis Firefox native benutzerdefinierte Bildlaufleisten unterstützt, ist dies nur mit JavaScript-Plugins wie jScrollPane und ähnlichem möglich.

22
Claudio Holanda

Hier ist eine Lösung, aber Sie müssen Javascript verwenden. Grundsätzlich wird eine Schleife ausgeführt, in der der Browser die Bildlaufleisten anzeigt.

Verwenden Sie dieses CSS, um sicherzustellen, dass in Ihrem div Bildlaufleisten angezeigt werden:

.mydiv{ overflow-y:auto; }

Hängen Sie dieses Skript dann an Ihre Seite an (dazu ist JQuery erforderlich).

<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
Confidant

Wie wäre es mit overflow: -moz-scrollbars-vertical?

0