1223453901 スクロールバーについて質問です。

プログラムの言語は問わず、数式のみお教え頂けますでしょうか?
ブラウザ等にもあるWindowsデフォルトのスクロールバーの同等の機能を持つとお考えください。(ただし、ドラッグアンドドロップでのバーの移動はできなくとも構いません)
※分からない方は、詳しくは画像ファイルをご参照ください。

例えば、高さ200pxのテキストボックス(aとします)があるとします。
そこに、文字が大量に書かれて高さが10000pxの物(bとします)を表示させたいと考えております。
また、スクロールバーの上下のボタンを押した場合の移動量は10pxとします。

その場合、Windowsデフォルトのスクロールバーと同様の機能を付けるには
「バーの長さの調整」、上下のボタンを押した際の「バーの移動量の算出」の計算式が必要になると思いますが
どういった数式になるでしょうか?


回答の条件
  • 1人5回まで
  • 登録:2008/10/08 17:18:22
  • 終了:2008/10/15 17:20:02

回答(1件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/10/08 21:53:44

ポイント60pt

テキストボックスと内容のそれぞれの高さを ah、bh とすると、スクロールバーのスクロールエリアにおけるスクロールボックスの割合は ah / bh。

実際のスクロールボックスの高さはこれにスクロールエリアの高さ (sah) をかけて sah * ah / bh。


ボタンを押したときにスクロールボックスが何px 移動するか、というのは割り切れない場合に誤差でずれるので、その都度全体の位置で考える。

スクロールボックスの高さを sbh とするとスクロールボックスの取りうる位置の範囲 sbr は sah - sbh。

テキストボックスに置ける内容物のスクロール範囲 ar は bh - ah、現在の位置を ap とすると位置の比率は ap / ar。

スクロールボックスの位置は sbr をかけて sbr * ap / ar。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません