はじめに
jQuery UIは、
jQuery UIはたくさんの機能を提供するので、
今回jsdo.
また、
- http://
jqueryui. com/ demos/ (公式サイト) - http://
stacktrace. jp/ jquery/ ui/ (日本語サイト)
jQuery UIを使う
それでは早速jQuery UIを使ってみましょう。jsdo.
jQueryとjQuery UIの2つのがロードされているのがわかると思います。まずはjQuery UIを使ってドラッグの機能を実装してみましょう。以下のサンプルでは要素がドラッグアンドドロップできるようになっています。
これはjQuery UIのDraggableを使っています。JavaScriptコードを見てもらうとわかりますが、
$('.box').draggable();
jQuery UIを使うとこれだけで要素をドラッグして動かせるようになります。また簡単さに加えてさまざまな機能をオプションやイベントで設定できるのもjQuery UIの特徴の一つです。たとえば今のコードに、
追加したコードは以下のようになります。これもとても短いコードで実現できるというのがわかると思います。
$('.box').draggable({
// ドラッグ開始時に実行される
start: function() {
$(this).css('background', '#C00');
},
// ドラッグ終了時に実行される
stop: function() {
$(this).css('background', '#CCC');
}
});
ソートを可能にする
次にリストなどをソートするUIを実装してみます。
リストの順番をドラッグアンドドロップで入れ替えられるのがわかると思います。JavaScript部分は以下のようになっています。
$('.list1').sortable().disableSelection();
sortable()がソート可能にする処理です。後ろのdisableSelection()はテキストを選択できないようにする処理で、
※ ただしjQuery UIのバージョン1.
リストを相互に入れ替えられるような機能もsortable()で実装することが可能です。サンプルは以下のようになります。
この機能は、
// リスト1の項目はリスト2に移動することができる
$('.list1').sortable({
connectWith: '.list2'
}).disableSelection();
// リスト2の項目はリスト1に移動することができる
$('.list2').sortable({
connectWith: '.list1'
}).disableSelection();
移動先の要素の指定はjQueryのセレクタと同じ形式になるので、
タブのUIを作る
タブやカレンダーなどの機能は、
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/ui-lightness/jquery-ui.css">
これを使ってタブのUIを作るとこのようになります。
ここではテーマを読み込むために$.uiThemeLoaderというテーマローダーを作成しました。これを使ってテーマをセレクトボックスで切り替えられるサンプルを作ったのでこちらで色々切り替えてみて好きなテーマを探してみて下さい。
タブの機能にもさまざまなオプションが用意されているのでいくつか機能を付け加えてみます。以下は初期表示の時に選択されているタブの指定と、
コードは上記の例に加えて以下のようなオプションを設定しただけです。
$('#tabs').tabs({
// 初期表示のタブを指定する
selected: 2,
// アニメーション
fx: { height: 'toggle', opacity: 'toggle' }
});
フォームのUI
カレンダー
jQuery UIにはフォームの入力のUIをサポートする機能もあります。まずは日付入力の機能です。
テキストボックスにフォーカスした時にカレンダーが表示され、
スライダー
以下のようなスライダーのUIもうまく使うとユーザーが直感的に操作することができるケースがあるでしょう。
また、
ダイアログ
jQuery UIではさまざまな機能のダイアログを実装できます。
標準のalert()やconfirm()だと、
自動補完
自動補完の機能は、
このサンプルでは、
今回のお題
以下のようなフォームをjQuery UIの機能を使って、
チェックボックスがないとフォームで送信できないなどの事情は今回は考える必要はないので、
たとえば、
ここではまだJavaScriptを実装していないので、
単にドラッグアンドドロップで移動できるようにするだけでもいいですが、