43
votes

Firefox 24 introduced Lion scrollbar support. This will show scrollbars in Lion style on Mac OS X. See: https://wiki.mozilla.org/Lion_Scrollbars/Triage

This causes a problem for me: a scrollbar on a div is now hidden by default. Sometimes I want to force a visible scrollbar.

For WebKit there is a nice solution (mentioned at 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);
}

Does anybody know how I can force a visible scrollbar in Firefox 24 (and up) on Mac OS X?

Are there any drop-in javascript scrollbars that match webkit scrollbars?

4
Unfortunately, this is currently not possible in FF. See: bugzilla.mozilla.org/show_bug.cgi?id=77790 The workaround would be to use javascript scrollbars that reimplement native behavior. Keep in mind that browsers are respecting the user preferences set in OSX and users are already trained to scroll in areas that appear to have overflow. - Kerry Liu
One thing to be careful of is to design your page in such a way that it actually does appear to have overflow whenever it does. I see many sites now that use "stacked screens" as a design, where you scroll down and keep seeing different screens or "pages" - but if you don't notice the short scrollbar, and the "fold" happens to be right above the start of the next screen, there is nothing to indicate that more content exists. Take frontporch.io for example (as of 10/14/2013.) - JD Smith
What is the question here? Do you want to force the visibility of scrollbars? Or do you want to customize the look of the scrollbars? - yunzen
doesn't the webkit work in firefox - Sudharsun

4 Answers

27
votes

As user thirtydot explained in another question, there is no way to customize scrollbars in Firefox as its possible in Chrome.

Also, there is no way to actually "force" Firefox render the old-style scrollbar since the default scrollbar used in the system is predefined by the OS itself (note that you can modify which scrollbar you want in System Preferences).

In other words, until Firefox supports native custom scrollbars, it is only possible with JavaScript plugins such as jScrollPane and similar.

3
votes

Here's a solution but you have to use Javascript. Basically it runs a loop that forces the browser to show the scrollbars.

Use this CSS to make sure your div is set to show scrollbars:

.mydiv{ overflow-y:auto; }

Then attach this script to your page (this requires 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>
0
votes

How about overflow: -moz-scrollbars-vertical?

0
votes

The actual answer for this is go to System Preferences - General Tab - and turn 'Show Scroll Bars' to 'Always'.