
No.2ベストアンサー
- 回答日時:
こんにちは
>そのようなセレクトボックスを作るにはどう実装したらいいでしょうか?
セレクト要素の制御を途中でピックアップできるかどうか試してみましたが、通常表示の場合は、未選択の段階(ホバー状態)でどのオプションが選ばれているかを取得するのは難しいようでした。
size指定した場合には、Fx、Chromeではオプション要素でhoverイベントが発生するようですが、IEでは発生しないようです。
無理やり位置を把握する方法として思いつくのは、マウスの位置を監視して、そこから計算するという方法ですが、少々面倒ですね。
それなので、別途、自作のリストなどでオプションと同じ内容を表示して循環させるような方法のほうが、結果的に楽に実現そうな気がします。
このように別要素で表示する方法は、入力要素をカスタマイズするライブラリなどでもよく用いられている方法だと思います。(見た目や使い勝手を元のセレクトと同じようにしておけば、まず違和感はないでしょう)
セレクト-オプションそのままでは上記のようにマウスの変化の取得がうまくいきませんが、リスト等にしておけばそのままmouseoverやclickイベント等が取得できますので、ユーザの操作に応じた対応が可能になります。
実質的にはリストの1行を(先頭または最終へ)循環させる処理を作成しておいて、それを繰り返し呼び出せば済みそうですね。
ただし、(循環のために)表示位置がスクロールすると、マウスの位置と要素の関係がずれると想像しますので、そのあたりのUIをどのようにしておくのかは一考の余地がありそうです。
この回答へのお礼
お礼日時:2018/01/24 21:55
ご回答ありがとうございます。マウスを使うのみであれば、divを下に足らして、z-index上にして擬似でできるのはできそうですが、キーボードの上下でも制御ができるかというのもあるので・・・あとから色々考えて、数字のスピナーもありかなー?と。本当はプラグインいれたくないですがUIのスピナーを上手く応用するといけるような気はしてますが・・・一応もう少し探してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFを(htmlのように)無限に縦...
-
C言語のflagの使い方が分かりま...
-
入力フォームの値をQRコードで...
-
バッチファイル 特定ウインドウ...
-
画像のドットの部分が抜けてい...
-
Pythonを無料(安価)で学ぶ方...
-
スライドを最後の画像で止めたい
-
bxsliderで最初に縦に複数表示...
-
正規表現で、特定の文字列を含...
-
php コールバック関数
-
ナイトボットのAliasについて
-
これってなんの電話かわかりま...
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
-
Chinapost こよパズルどう動か...
-
非同期通信で掲示板を作る際の...
-
非同期通信を使うタイミングが...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
Pythonを勉強する道のり
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スプレッドシートのチェックボ...
-
VC++のデバッガでvectorの要素...
-
NS(項目)とNSMutable(項目)の違い
-
(VBS) テキストファイル読込で...
-
[C++] vector<string> の各要素...
-
マウスの入って来た方向を検出...
-
VBAでユーザ定義変数名をシート...
-
C# tree組み換え
-
JavaScriptでクリップボードの...
-
JQuery、セレクトボックスをル...
-
ロールオーバーで大きくバナー...
-
VBAでセル参照して要素の順番を...
-
ajax
-
PL/Iについて、教えてください。
-
WebサイトのHTMLオブジェクトの...
-
【VB.NET】HTML要素を取得しよ...
-
【VBA/HTML】特定のタグ要素に...
-
ページ全体をスクロールするAja...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
おすすめ情報