web-dev-qa-db-ja.com

Mac OS X上のFirefoxでスクロールバーを表示する

Firefox 24では、Lionスクロールバーのサポートが導入されました。これにより、Mac OS XでLionスタイルのスクロールバーが表示されます。参照: 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);
}

Mac OS X上のFirefox 24(以降)でスクロールバーを強制的に表示する方法を知っている人はいますか?

Webkitスクロールバーと一致するドロップインjavascriptスクロールバーはありますか?

36
Boschman

ユーザーthirtydot 説明 別の質問では、Chromeで可能な限りFirefoxでスクロールバーをカスタマイズする方法はありません。

また、システムで使用されるデフォルトのスクロールバーはOS自体によって事前定義されているため、Firefoxは実際に古いスタイルのスクロールバーを「強制」する方法はありません(システム環境設定でスクロールバーを変更できることに注意してください)

つまり、Firefoxがネイティブのカスタムスクロールバーをサポートするまで、 jScrollPane などのJavaScriptプラグインでのみ可能です。

22
Claudio Holanda

これは解決策ですが、Javascriptを使用する必要があります。基本的に、ブラウザにスクロールバーを表示させるループを実行します。

このCSSを使用して、divがスクロールバーを表示するように設定されていることを確認します。

.mydiv{ overflow-y:auto; }

次に、このスクリプトをページに添付します(これには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
Confidant