リストボックスのスクロールバーを連動させるには?

[上に] [前に] [次に]
saku 1999/07/02(金) 20:21:29
こんにちは、またまたまた質問させて下さい。

例えばリストボックス(<SELECT SIZE=5>とか)を2つ以上ならべて、どれか1つでもスクロールバーが動かされたら他のリストボックスのスクロールバーも一緒に動かすという事は、可能でしょうか?
各リストボックスに格納されている行数は一緒で、行毎に関連が有ります。

どなたかご存知の方、よろしくお願いします。

Aurai [E-Mail] 1999/07/03(土) 00:48:37
スクリプトだけじゃ無理じゃないかと思います
JAVAでスクロールイベントを受け取れば可能でしょうか

saku 1999/07/05(月) 02:05:14
Auraiさん、レスありがとうございます。

>JAVAでスクロールイベントを受け取れば可能でしょうか
これはJavaアプレットという事でしょうか?

うーん、だめなんですかねぇ

Tmb 1999/07/05(月) 10:36:33
本当に「スクロールバー」であればJavaScriptだけでは無理だと思いますが。
でもSELECTでスクロールバーが出るのは珍しいというか,MULTIPLEのときだけ
だと思うのですけど。
#ブラウザによっても変わるでしょうが,Mac版NNでは少なくとも。

単にSELECTで選ばれた項目を拾って連動させるのであればJavaScriptで可能ですが。
#それぞれのSELECTにonChangeを付けて,その時のselectedIndexを拾い,すべての
#SELECTのselectedIndexをその値に変えるだけですが。

saku 1999/07/05(月) 23:22:25
Tmbさん、レスどうもありがとうございます。

>単にSELECTで選ばれた項目を拾って連動させるのであればJavaScriptで可能ですが。
おっしゃる方法でやっているんですが、各SELECTのスクロールバーが別々に動かされた時、
この方法だと見栄えが悪くなってしまうのです。
インデックスが同じでも実際に表示されている位置が違うと、バラバラに選択されているように見えてしまうのです。
1つのSELECTで表示するのでもいいのですが、そうすると文字の位置合わせが狂ってきてしまうし・・・。

困った事になってます。
うーん、だめかな。

リストボックスのフォントって変更できましたっけ?
等幅フォントに変更できればいいのですけれどもね。
むむむ

Tmb 1999/07/06(火) 18:28:11
うーむ,難題ですね。

あんまり美しくないけど,onChangeのとき,selectedIndexを適当な変数に
憶えさせておき,すべてのselectedIndexを0に(リストの最初の項目に)
変え,その後で保存していた変数の値に書き換えるとか。実際に試した
わけではないですけど,selectedIndex=0にしたときに,スクロールバー
が先頭に戻るなら,一応選択されてる行は揃うかも。
#ただ,選んだ行が大抵の場合,表示される最初の行に移動する。さらに動作中
#ちらつくかもしれない。どうも美しくないなぁ

せめて現在表示されてる最初の行を得るプロパティでもあれば,無理矢理にでも
できないことはない(seletcedIndexを0→最初の行→選択されてた行にする)
でしょうけど,そんなの見当たらないし。

Tmb 1999/07/06(火) 18:35:10
うー,駄目か。
selectedIndexを表示されてない値にしても,スクロール領域は
変化しませんでした。

Nobu3 1999/07/07(水) 14:32:56
スタイルシート対応なら、セレクトボックスに指定すればフォントを変更できますね。
これならスペースで揃える事もできそうですが、現状のNNでは無残な結果になるでしょうね・・・

セレクトボックスを使う意図がよくわかりませんが、
揃えるだけならテーブルを使えば・・・
あとは、セレクトボックスのサイズを最大値にするとか(スクロールさせない)・・・
あぁ・・・意味ないですね・・・

saku 1999/07/07(水) 22:29:18
Tmbさん、Nubu3さん、レスありがとうございました。

>うー,駄目か。
試していただけるとは...感激です!!
やっぱりだめですかねぇ

>セレクトボックスを使う意図がよくわかりませんが
見栄えもいいし、画面サイズも限られているし・・・

フォント指定できるんですか。
調べてみます。

saku 1999/07/10(土) 13:31:38
こんにちは

<SELECT>のフォント指定を行なってみましたが、
等幅フォント(MS ゴシック)を設定しても、
スペース文字はつめて表示されてしまいました。
これを回避する事は出来ませんでしょうか?

どなたかご存知の方、御教授下さい。
よろしくお願いします。

Tmb 1999/07/12(月) 17:00:36
>スペース文字はつめて表示

&nbsp;とか,全角スペースでは無理ですか?

saku 1999/07/13(火) 13:34:37
Tmbさん、レスありがとうございます。

スペースをつめてもですね、例えば'a'と'i'では文字の幅が変わってしまって表示がうまく出来ないのです。
例)
 aaaa  ああああ
 iiii  いいいい

<SELECT>のフォントを等幅に設定できればよいのですが・・・

御存じないでしょうか?

Tmb 1999/07/13(火) 14:00:53
?? ってことは等幅フォントを使ってるつもりが,プロポーショナルに
なってるってことでは?

残念ながらWindowsのフォントについては詳しくないので的外れかも
しれないですが,一応確認までに。

・MSゴシックは確かに等幅ですか?
・半角英字も等幅で扱われますか?
・他に妥当な等幅フォントはありませんか?
・SELECTのフォント指定は確かに働いてますか?

原因として考えられるのはこのくらい?

saku 1999/07/13(火) 14:22:42
[[解決]]
Tmbさんレスありがとうございます
まさかこんなに速いレスが付くとは思いませんでした。

確認事項についてですが、ちゃんと等幅で設定されていませんでした。
「MSゴシック」→「MS ゴシック」でした。
半角スペースが抜けてました。
で、実際に試したところちゃんと等幅で表示され、残る半角スペース問題も「&nbsp;」を使用する事により正常に表示されました。
あとは空白スペースを「&nbsp;」に置換して出力するだけです。

ながながと質問に付き合っていただき、ありがとうございました。
これにて解決とさせていただきます。

[上に] [前に] [次に]