« BASIC認証の第一歩:メモ | トップページ | GET/POST/open/submit/Ajaxとservlet:多局面メモ »

◆CANVASを用いたHTMLスライダー



 HTMLスライダーをcanvasで作る;取り急ぎ

WEB画面でスライダーが欲しくなることは頻繁にあります。

これまではFlashで簡単に作成できましたが、Flashの動かない貧弱な ブラウザが増えてきたため対処が必要です。

<range>はまだ殆どのブラウザで動作しません。jQueryによる実装も 滑らかには動作しません。なかなか良いものが見つからないので、 canvasで単純なものを実装することにしました。

使い方は

  1. HTML記述でcanvasを定義する
  2. JavaScriptでhiSliderをcanvasを引数でnewする
です。冒頭のスライダーをどう定義しているか[上のスライダー定義を表示する] ボタンで見ることができます。

hiSliderの構築子にはオプション指定があり、次の設定ができます。

設定項目デフォルト説明
val数値50初期値
min_val数値0最小値
max_val数値100最大値
disp_valbooleantrue現在値を表示する/しない
disp_scale0true刻みの単位
scale_vals数値配列null目安の数値の並び
precision数値0少数点以下何桁までだすか
text_colr色を表す文字列'black'数値と刻みの色
callback関数null 値に変化があった時呼び出す関数

callback関数は3つの引数を持ちます。

  1. イベントの起こったhiSlider
  2. マウスのイベント種を示す文字; "d"=down,"m"=move,"u"=up,"o"=out
  3. マウスイベント生情報
冒頭のサンプルでは一番下の白/黒スライダがcallback関数を使っており callback関数でスライダの値をHTMLの<input type=text>領域にセットしています。

IE9,GoogleChrome,Safari(win),firefoxでは問題なく動きました。

残念ながらiPadのSafariではハンドルをドラッグすることは できず、クリックで位置を変えることができるだけです。

 コード

ちょっと長いですがコードを載せます。hiSlider.jsとsliderSample.htmlに 分かれています。
sliderSample.htmlで呼んでいるexcanvas.jsはIE8以前のIEでcanvasを動かす ためのもので、IE9そのたcanvasが動作するブラウザでは不要です。 IE8以前のブラウザで見る場合適当なところにダウンロードして、その urlに書き換えてください。

 ダウンロード

ダウンロードファイルを用意しました。右クリック->[対象をファイルに保存]でダウンロードできます。

 機能をどこまで付けるか

当初はオプション無しの単純なものをと考えていたのですが、最大値、最小値、目盛、 コールバックなどは最低でも必要だとして、追加し、少し肥大化しました。

多分さらにオプションは増えるでしょう。

 取り急ぎの記事なので

説明が足りないとは思います。その内コードの説明なども入れます。

|

« BASIC認証の第一歩:メモ | トップページ | GET/POST/open/submit/Ajaxとservlet:多局面メモ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ◆CANVASを用いたHTMLスライダー:

« BASIC認証の第一歩:メモ | トップページ | GET/POST/open/submit/Ajaxとservlet:多局面メモ »