Форсировать видимую полосу прокрутки в Firefox на Mac OS X

Firefox 24 представил поддержку прокрутки Lion. Это покажет полосы прокрутки в стиле Lion в Mac OS X. Смотрите: https://wiki.mozilla.org/Lion_Scrollbars/Triage

Это вызывает проблему для меня: полоса прокрутки на div теперь скрыта по умолчанию. Иногда я хочу заставить видимую полосу прокрутки.

Для WebKit есть хорошее решение (упомянуто в 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);
}

Кто-нибудь знает, как я могу заставить видимую полосу прокрутки в Firefox 24 (и выше) на Mac OS X?

Есть ли какие-либо всплывающие полосы прокрутки javascript, которые соответствуют полосам прокрутки webkit?

Ответ 1

Как пользователь тридцать дней объяснил в другом вопросе, нет возможности настраивать полосы прокрутки в Firefox как возможные в Chrome.

Кроме того, нет никакого способа "заставить" Firefox визуализировать панель прокрутки старого стиля, поскольку панель прокрутки по умолчанию, используемая в системе , предопределена самой ОС (обратите внимание, что вы можете изменить, какую полосу прокрутки вы хотите в Системных настройках).

Другими словами, пока Firefox не поддерживает собственные пользовательские полосы прокрутки, это возможно только с плагинами JavaScript, такими как jScrollPane и т.п.

Ответ 2

Здесь решение, но вы должны использовать Javascript. В основном он запускает цикл, который заставляет браузер показывать полосы прокрутки.

Используйте этот CSS, чтобы убедиться, что ваш div установлен для отображения полос прокрутки:

.mydiv{ overflow-y:auto; }

Затем присоедините этот script к вашей странице (для этого требуется 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

Как насчет overflow: -moz-scrollbars-vertical?