Firefoxでスクロールバーの色を変更したい。どうやってやるの?
Firefoxでのスクロールバーの色の変更は、Internet ExplorerやOperaほど簡単ではありません。 Firefoxでは、テーマによってスクロールバーのスタイルのみを設定できます。これは良いことです。多くのユーザーは、デザイナーの気まぐれでインターフェイスウィジェットのルックアンドフィールがランダムに変更されることを好みません。インターフェースのピースの外観を変更することは、ハイコントラストテーマを使用している視覚障害のある訪問者にとってはさらに大きな問題になる可能性があります。
つまり、スクロールバーがページの<div>
内に含まれている場合、カスタムスクロールバーを作成し、JavaScriptを使用して機能させることができます。このjQueryプラグインは、非常にうまくトリックを実行するように見えます。 http://jscrollpane.kelvinluck.com/
これは多かれ少なかれあなたがやりたいことだと思います: http://martinsmucker.com/demo/scroller.html
仕組みは次のとおりです。
ドキュメントの<head>
内で、いくつかのスタイルシートとスクリプトを参照する必要があります(おそらく、既に http://jscrollpane.kelvinluck.com/ からダウンロードしています)。
これは、魔法の大部分が発生する場所です。
<!-- Styles -->
<link rel="stylesheet" type="text/css" href="jquery.jscrollpane.css" />
<style type="text/css">
html, body {
height: 100%;
margin: 0;
padding:0;
}
#container {
height:100%;
width:100%;
margin: 0;
padding:0;
overflow: auto;
}
</style>
<!-- Scripts -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.mousewheel.js"></script>
<script type="text/javascript" src="jquery.jscrollpane.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.scroll-pane').jScrollPane();
});
</script>
これは、cssおよびjsファイルがhtmlファイルと同じディレクトリにあることを前提としています。まず、提供されたスタイルシートにリンクします。
次に、CSSを少し追加して、通常のスクロールバーが表示されないようにします。 htmlおよびbodyのmargin
およびpadding
を0に設定し、height
を100%に設定します。すべてのコンテンツは、IDが「container」のdivにラップされます。このコンテナはページを正確に塗りつぶし(高さ:100%;幅:100%;)、スクロールバーをカスタマイズできるようにスクロールをスチールします(overflow: auto;
)。
次に、適切なスクリプトをすべて参照します。ここでは、GoogleがホストするjQueryのコピーを使用しています。また、すべてのローカルスクリプトがhtmlファイルと同じディレクトリにあると仮定しています。 jqueryの最後の少しは、「スクロールペイン」クラスを持つすべてのdivを見つけ、適切な要素とスクロール機能をそれらに追加します。
HTMLは非常に簡単です。
<body>
<div class="scroll-pane" id="container">
All of your content for the page goes here.
</div>
</body>
すべてを正しく行った場合、ページは私の例のようになります。
ChromeとSafariは、スクロールバーの色付けをサポートしています。次のコードをcssに配置して、魔法の発生を確認してください。
::-webkit-scrollbar {
height: 12px;
width: 12px;
background: #969696;
-webkit-border-radius: 1ex;
}
::-webkit-scrollbar-thumb {
background: #2B2B2B;
-webkit-border-radius: 1ex;
-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
}
::-webkit-scrollbar-corner {
background: #1A1A1A;
}
不足しているのは、Firefoxがこの機能をサポートすることだけです。
CSSから直接使用することはできません。
ただし、jQueryを使用できる場合は、 jscrollpane が役立ちます。
できません。 here を見るとわかるように、これはfpr IE5 +およびOpera7.2 +でのみ可能です。
EDIT:少しのjavascriptを使用すると、自分の「html-scrollbars」をビルドして、好きなようにスタイル設定できます-しかし、私はあなたはそれをするべきだとは思わない、これを詳細に書くだけだ。
Firefoxバージョン64以降では、スクロールバーのスタイリングが制限されています。
.my-scrollable {
scrollbar-color: red blue;
scrollbar-width: thin;
}
https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color を参照してください
私の知る限り、これはあまり役に立ちませんが、Firefoxでスクロールバーを表示するかどうかを制御する属性は次のとおりです:( reference link )
Attribute....scrollbars
Type.........nsIDOMBarProp
Description..The object that controls whether or not scrollbars
are shown in the window. This attribute is "replaceable"
in JavaScript. Read only
Firefoxには、ベンダー固有の次のプロパティもあります。
オーバーフロー:-moz-scrollbars-none
他の有効な値は-moz-scrollbars-horizontalおよび-moz-scrollbars-verticalです。
firefoxまたはクロスブラウザの場合は、次を使用できます。 jQueryカスタムコンテンツスクローラー
よりシンプルで使いやすい
ここでは、Magentoで実装し、firefox、opera、chromeおよびsafariでテスト済み)のサンプル: http://i.stack.imgur.com/wnRCL.png