jQuery UI ドロップ(Droppable) - 要素をドロップ可能なターゲットにする
このチュートリアルでは、jQuery UI のドロップ(Droppable)機能について説明します。この機能を使用すると、HTML 要素をドロップ可能なターゲットにすることができ、他の要素(ドラッグ可能な要素など)をその上にドロップできるようになります。Droppable の使用方法、オプション、イベント、メソッドについて詳しく説明し、豊富なコード例を示して、すぐに使い始められるようにします。
1. jQuery UI Droppable とは
- Droppable は、jQuery UI ライブラリに含まれるインタラクションモジュールであり、要素を「ドロップ可能領域」として定義できるようにします。
- 他の要素、通常はドラッグ可能な要素(Draggable)は、その領域にドラッグアンドドロップできます。
- Droppable は、ドロップの動作をカスタマイズし、ドラッグアンドドロップのインタラクションを処理するための豊富なオプション、イベント、メソッドを提供します。
2. Droppable の使用方法
- **jQuery と jQuery UI ライブラリを読み込む:**
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
- **ドロップ可能な要素とドラッグ可能な要素を作成する:** HTML を使用して、ドロップ可能なターゲットとドラッグ可能な要素として機能する 2 つの div 要素を作成します。
- **Droppable を初期化する:** `$(selector).droppable()` メソッドを使用して、ターゲット要素をドロップ可能な要素として初期化します。
$( "#droppable" ).droppable();
- **(オプション)Droppable の動作をカスタマイズする:** オプションオブジェクトを渡すことで、Droppable の動作をカスタマイズできます。例:
- `accept`: ドロップ可能な要素を指定します。
- `classes`: Droppable のさまざまな状態の CSS クラス名を定義します。
- `tolerance`: ドロップの許容範囲を設定します。
3. Droppable のイベント
- Droppable は、ドラッグアンドドロッププロセスのさまざまな段階でカスタム操作を実行するために使用できる複数のイベントを提供します。
- `create`: Droppable がインスタンス化されるときにトリガーされます。
- `drop`: 要素がドロップ可能領域にドロップされるときにトリガーされます。
- `over`: 要素がドロップ可能領域にドラッグされるときにトリガーされます。
- `out`: 要素がドロップ可能領域からドラッグアウトされるときにトリガーされます。
4. Droppable のメソッド
- Droppable は、その動作を制御するためのいくつかのメソッドを提供します。
- `disable`: Droppable 機能を無効にします。
- `enable`: Droppable 機能を有効にします。
- `destroy`: Droppable インスタンスを破棄します。
5. コード例
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI ドロップ(Droppable) - デモ</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
#draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
</style>
<script>
$( function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "ドロップされました!" );
}
});
} );
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
<p>ドラッグ可能</p>
</div>
<div id="droppable" class="ui-widget-header">
<p>ここにドロップ</p>
</div>
</body>
</html>
6. まとめ
このチュートリアルでは、jQuery UI Droppable の基本と、インタラクティブなドラッグアンドドロップインターフェースを作成するための使用方法について説明しました。
関連する質問と回答
質問 |
回答 |
Droppable領域に複数の要素をドロップできますか? |
はい、droppableのオプションで複数ドロップを許可するように設定できます。 |
ドロップ可能な要素を動的に追加できますか? |
はい、jQueryを使用して要素を動的に生成し、.droppable()メソッドを適用することで実現できます。 |
ドロップイベントで、ドロップされた要素に関する情報を得るにはどうすればよいですか? |
ドロップイベントハンドラのui引数には、ドロップされた要素やその位置に関する情報が含まれています。 |