スクロールバーのつまみをマウスでドラッグしている時に、マウスがスクロールバーからある程度離れた位置に行くと、スクロールされたのが元の位置に戻ってしまいます。よくスクロールし終わった時に元の位置に戻ってしまうことがあるので、元に位置に戻る機能なんかいらないと思いたくなります。しかし、それにも何か理由があると思いスクロールバーについて調べてみました。

スクロールをキャンセルする

 スクロールが元の位置に戻ってしまうのは、スクロールをキャンセルするためだと思います。キャンセルできると便利なことがあります。たとえば、文章を入力中に画面に表示されていない位置に参照したい内容があります。そんな時に、スクロールしながら内容を確認して、キャンセルすると元の入力中の位置に戻ることができます。

 このようにスクロールをキャンセルできるのはいいのですが、キャンセルする操作が明確ではありません。キャンセルするにはマウスをスクロールバーからある程度離す必要があります。では、マウスをどのくらいスクロールバーから離した時に、キャンセルされてしまうのでしょうか。

スクロールがキャンセルされる距離

 垂直スクロールバーでスクロールがキャンセルされる距離は次のようになりました。マウスをスクロールバーより上下に動かした場合は 35 ピクセル離す必要がありました。マウスをスクロールバーより左右に動かした場合は [スクロールバーの幅] * 8 ピクセル離す必要がありました。私の環境ではスクロールバーの幅が 17 ピクセルになっていたので、17 * 8 で 136 ピクセル離すとスクロールがキャンセルされます。水平スクロールバーの場合は垂直スクロールバーの上下・左右の結果が反対になります。

 上下に動かしてキャンセルする場合は 35 ピクセルと、とても距離が短いです。少しでもスクロールバーからマウスが離れるとキャンセルされる感じです。左右に動かしてキャンセルする場合は、スクロールバーの幅に比例してキャンセルされる距離が変わってきます。

スクロールをキャンセルする方法

 ここまでで、スクロールがキャンセルされる距離が明確になりました。が、このキャンセルする方法はあまりよくないと思います。スクロールしている時は視線が表示内容に行きます。マウスには視線が行きません。そのため、スクロールしている最中にマウスが少しずつスクロールバーから離れてしまい、キャンセルしたくないのにキャンセルされる恐れがあります。

 キャンセルする方法がスクロールバーからの距離という視覚的にもわかりにくいものではなく、スクロール中に右クリックするとキャンセルする。というようなシンプルな方法であればいいと思います。