STERFIELD
開発ナレッジ2014.03.12

iPhoneやAndroidのサイトでスクロールバーをカスタマイズ

CSSの設定で、”overflow: auto” や”overflow:scroll”を指定したとき、

iPhoneでそこを表示すると、要素のはみ出した部分は隠れた状態となり、

スクロールは可能なのですが、スクロールバーが表示されません。

そのままでは、そこがスクロール可能であるということがわかりづらく、

サイトとして使いづらくなってしまう可能性が高くなります。

 

なんとか解決策はないかと探していたところ、

Webkitを使ったブラウザでは、CSSの疑似要素を使って、スクロールバーをデザインすることができることがわかりましたので、

その方法についてご紹介いたします。

 

↓こちらがデモです(ChromeもしくはSafariにてご覧下さい)

DEMO

 

方法

スクロールバーの中でデザインすることができるのは、スクロールバー本体・スクロールバーの動く部分・角それぞれのwidthとbackgroundとborder-radiusとなります。

-webkit-scrollbarの説明

横方向のスクロールバーを別で指定する場合には、:horizontal疑似クラスを設定することで可能となります。

また、スクロールバーの動く部分(scrollbar-thumb)の前の部分は:start疑似クラス、後ろの部分は:end疑似クラスにて設定が可能です。

例:

こちらのサイト(→WebKitを使ってスクロールバーをカスタマイズ)で、より詳しい説明をしていただいてました。

 

あまり細かな設定はできませんが、スクロールバーの存在を示す場合には十分に使うことができるので、

Webkitの利用が多いスマートフォンサイトなどでは実用としても利用できると思います。

 

参考サイト

Webkit独自拡張でスクロールバーのデザインを変更する

WebKitを使ってスクロールバーをカスタマイズ

WRITER

ninomiya

Webデザイナー兼コーダー出身のフロントエンド開発者です。 UXデザインやチーム開発の効率化など、勉強中です。

この著者の記事を見る

CONTACT

記事の内容について
相談したい方へ

実際の進め方は、状況を伺ってからご提案します。

2営業日以内にご返信します
資料ダウンロード無料相談に申し込む