スクロールバー

スクロールバーは、主にウィンドウシステムにおいて単一のウインドウ内で収まりきらない情報の部分領域だけ表示し、必要に応じて表示領域を移動するためのGUIパーツのことをいう。縦方向と横方向の二種類があり、前者を単にスクロールバー、後者を横スクロールバーなどと呼ぶ。なおスクロールバーはユーザ側からみた呼び名で、プログラム上ではスクローラーと呼ばれる場合がある。

スクロールの原義は「巻物」のことである。画面を移動する操作が巻物を巻き上げる様子に似ている事から、スクロールと呼ばれるようになった。

1. 概要
-----

1.1. 名称と操作
----------

スクロールバーは複数のパーツからなる複合コンポーネントである。

つまみいわゆる「つまみ」。現在表示されている位置や、全体に占める割合などを示す。ノブをドラッグすると表示領域を移動する事ができる。この時内容がリアルタイムで更新される場合と、ノブを放した時に更新される場合がある。米国などではつまみのバーをサム  ともいう。このサムには異なる名称があり、Macintoshでは「スクローラー」と呼ばれている。JavaプラットフォームのAWTやSwing、JavaFXでは「バブル」「サム」「スクロールボックス」または「ノブ」 、マイクロソフトのMSDNドキュメントでは「スクロールボックス」「サム」「スクロールサム」と称する 。他には、「エレベーター」、「クイント」、「パック」、「ワイパー」または「グリップ」とも呼ばれる。 矢印上下の矢印で、クリックするとその方向にノブが1単位移動する。移動量はおおむねテキスト1行である。多くはボタンを押し続けると連続移動を行なう。アローの配置には2つの流儀があり、スクロールバーの両端に分かれて配置される場合と、一方の端にそろえて配置される場合に分かれる。前者の配置は「ノブを上下左右に移動させたい場合は上下左右それぞれの端にあるアローを操作する」という表現となっており、直感的で自然であるが、後者の集中配置型のほうがアロー間の距離が近くなるため、マウス移動の効率は良い。 本体スクロールバーの本体はノブとアローを適切に配置し、制御している。この部分をクリックするとページ量が充分な場合は、おおむねテキスト1ページ移動する。「Shift」キーを押しながら本体部分をクリックすると、クリックした地点にノブが移動する。ページの一番上から一番下に一気に移動するときは「Shift」を押しながら、矢印の少し上を押す。

1.2. スクロールバーの配置
---------------

スクロールバー本体はウインドウ内の右と下にそれぞれ垂直、水平のバーが置かれるケースが一般的である。この配置はXerox Starで最初に採用され、初期のApple Macintoshから普及した。対象となるウィンドウに対して常にスクロールバーが表示されるモードだけでなく、コンテンツのサイズがウィンドウのサイズを超えた場合にのみスクロールバーが自動で表示されるモードもある。

他にも次のような配置や挙動のパターンがある。

1.2.1. 垂直スクロールバーを左側に置くパターン
--------------------------

本記事が対象とするウィジェットとしてのスクロールバー自体はアラン・ケイらが開発した暫定ダイナブック環境においてウィジェットとしての“ペイン”に付属するものとして初めて考案・実装されたものであるが、この時点では左側に配置される方式が採用された。

左側に配置することのメリットは、グラフィカルインターフェイス上の表現では重要な機能が左側に集中する事が多く、ポインタや視線の移動効率が良い点が挙げられる。Smalltalk-76、-80等の古典的Smalltalk処理系のGUIの他にも初期のLispマシンやカーネギーメロン大学のAndrewシステム、Unix初のグラフィックターミナル、NeXTSTEPのGUI等においてスクロールバーの左配置が採用されている。

これとは別に、アラビア語のように右から左に向かって記述する言語版のインターフェイスでは、左から右に向かって記述する他の言語との対称性に配慮して、スクロールバーは左側に配置されるのが一般的である。

なお、水平スクロールバーはほとんどの場合、下側に配置される傾向が強い。

1.2.2. 状況に応じて追加描画されるパターン
------------------------

スクロールバーをウインドウやペイン内部に常時表示することはせず、マウスオーバーをフックして適宜描き足す場合がある。iOSデバイスやmacOSなどを通じ徐々に普及しつつあるオーバーレイ描画のスクロールバーが本パターンに属する。

この方式には、ウインドウ内に固定されたスクロールバー表示領域をとらずにすむという画面効率上の利点がある。表示領域を節約する以外にも、画面表示をシンプルかつスタイリッシュに保つのにも役立つ。一方、トレードオフとして、スクロールバーが表示されない状態ではウインドウやペインがスクロール可能かどうかや全体に対して表示されている内容の割合がどれぐらいかが分からないといったデメリットも生じうる。

このパターンの歴史は古く、前述のとおりSmalltalkにおけるGUI初のスクロールバーは同様の方針で実装されている。

1.3. インタフェースとしてのスクロールバー
-----------------------

スクロールバーは画面の固定領域を占有し、また情報を覆い隠してしまうので、利用を可能な限り避けるべきである。とはいえ画面の大きさには限りがあり、必要な大きさが事前に分かっているケースはまれである。またホイールを使えば移動の補助は可能だが、全体の大きさや位置はやはり必要となる。

他に代替手段としては、3次元コンピュータグラフィックスの3Dビューなどにおいてマウスカーソルの移動やドラッグを活用したズームやパンにより全体を拡大縮小・移動するインタフェースなどが考案されている。

モバイルなどのタッチインターフェイス環境では、画面のスクロールは基本的にスワイプやフリックといった操作で行なうため、スクロールバーは単にドキュメント全体に対する現在の表示領域を示す目的で控えめに使われることが多い。

1.4. スクロールバーの装飾・意匠
------------------

ウェブブラウザの中には、CSSによってスクロールバーの色や形状を変更することができるものが存在し、これを用いてウェブサイト側で独自にスクロールバーのデザインを設定している場合がある。

Internet Explorerにおける"scrollbar-○○○○-color"や、"::-webkit-scrollbar"の記述を用いたGoogle ChromeやSafari向けの記述が挙げられる。 たとえば、PC版Gmailの受信トレイページや、「Googleサイト」のサービスを使って開設されたウェブサイトなどを当該ブラウザで閲覧すると、独自デザインのスクロールバーとなる。

また、jQueryなどを用いてスマートフォンを含む全ブラウザ向けに独自デザインのスクロールバーを設定しているケースもある。

2. マウスとスクロールバー
--------------

マウスによっては中央にホイールを配したものがあり、1996年に発売されたのが最初で、2015年時点ではホイールマウスが主流になっている。ホイールを上下に回すことでページをスクロールできるほか、ホイールを中ボタンとしてクリックすることで、アプリケーションによってはオートスクロールモードに切り替わるものもある。

2.1. チルト
--------

マウスホイールに「チルト」機能が割り振られているものもある。これは、ホイールを左右に傾けることで水平スクロールする機能である。右左にスクロールすることを、右チルト、左チルトともいう。

3. 脚注
-----

3.1. 注釈
-------

3.2. 出典
-------

4. 関連項目
-------