web-dev-qa-db-ja.com

スクロールバーのつまみに最小の高さを設定する必要がありますか?

スクロールバーのつまみには2つの目的があります。

  1. つかむと、コンテンツが下にスクロールします。
  2. 含まれるコンテンツの量を視覚的に示すため。

ただし、これにより、コンテナー内のコンテンツが多すぎてスクロールバーの高さが1ピクセルも下がらないという理論的な可能性が生じます。

それで、これに対抗するには-スクロールバーのつまみが最小になる高さを設定する必要がありますか?

これの欠点は、上記の2番目の利点が無効になることです。これにより、コンテンツが実際よりも小さく見えるようになります。加えて、私が知る限り、スクロールバーは常に制御するサイズコンテンツを反映します。ただし、最小サイズを固定すると、ポイント1の機能が向上します。スクロールバーは、他の方法よりも簡単に把握できます。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

(明らかに、1つの考慮事項は、スクロールバーが小さくなるほど多くのデータを取得した場合、間違ったコントロールを使用している、またはコンテンツを再考する必要があることを意味しますが、この質問のために、スクロールバーです)。

4
JonW

はい、そうすべきです。

シナリオにはわからない部分がありますが、既知の公式とユーザーの期待に基づいて適用できる一般的なものがあります。それらの1つはthumb最小サイズです。

下の画像を見てください。

enter image description here

ここには、何十年にもわたるさまざまなシステムのスクロールバーがあります。ただし、Apple Lisaを除いて、それらはすべて共通の何かを共有していることに気付くでしょう:想像できるコンテンツの量にもかかわらず(表示されていないが、差し引くことができるため)、そして技術的な広告UIのアプローチでは、つまみは常に少なくともスクロールバーの幅と同じです

これは、ほとんどのオペレーティングシステムでネイティブスクロールバーを使用する場合に簡単に証明されます。デフォルトがすぐに適用されるため、何もする必要はありません。 Microsoftは次のように述べています

Thumbコントロールの最小サイズは、2つのシステムパラメータ、VerticalScrollBarButtonHeightとHorizo​​ntalScrollBarThumbWidthによって決まります。垂直トラックのThumbコントロールの最小サイズは1/2 * VerticalScrollBarButtonHeightで、水平トラックのThumbコントロールの最小サイズは1/2 * Horizo​​ntalScrollBarThumbWidthです。

ただし、さらに高い最小値が必要な場合があります。その場合、2つのオプションがあります。

1。固定の高さを設定します

スクロールバー、そのコントロール、および新しい最小の高さを考慮する必要があるため、これにはいくつかの計算が必要になります。したがって、親指を最低30ピクセルの高さに設定する場合は、これのためのスペースを確保し、30ピクセル前にスクロールバーを "fire"する必要があります。あなたは ここにVBサンプル実装ドキュメント を見ることができますが、基本的にはこれを意味します:

<Track.Thumb>
  <!-- Set the height of the Thumb.-->
  <Thumb Height="30"/>
</Track.Thumb>

2。変数の高さを設定しますこれは私がお勧めするものであり、これには計算があります

ThumbSize = TrackLength * ViewportSize / (Maximum – Minimum + ViewportSize)

これにはViewportSizeプロパティを指定する必要があります

もちろん、iOSには永続的なサイドバーはありませんが、それは別の話です。質問の目的のために、スクロールバー自体が表示されていないため、親指の高さはユーザーを視覚的に支援しないと言うだけで十分です

6
Devin

いいえ、問題を解決するために高さを調整する必要はありません。

高さは、ドキュメント全体に対する現在の画面位置を追跡するためのインジケータです。最小の高さを設定すると、この目的が無効になります。

代わりに調整する必要があるのは、サムコントロールのクリック領域です。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

注:これは簡単に制御できるものですか?おそらく、スクロールバーコントロールを再設計することなしではありません。

1
nightning

だから、これに対抗するには、スクロールバーのつまみが最小になる高さを設定する必要がありますか?

はい両方の理由であなたが述べます。スクロール可能なコンテンツは非常に大きくなるため、つまみが0ピクセルに縮小され、両方のポイントが効果的に無効になります。サイズが0のつまみはドラッグも表示もできません。

これの欠点は、メリット2が無効になることです。

いいえ、そうではありません。ユーザーはこの正確な測定値を必要とせず(とにかくすべてがピクセルに丸められます)、ビューポートが全体の「非常に小さい」部分を示していることを知っていれば十分です。

それに、私が知る限り、それは異常な動作です。スクロールバーは常に、コントロールするサイズコンテンツを反映します

それほど珍しいことではありません-少なくとも、Windowsのスクロールつまみは、サイズが数ピクセルよりも小さくなることはありません。

1
O. R. Mapper