jquery ドラッグ

jQuery UI ドラッグ (Draggable) - 要素の自由なドラッグを実現

この記事では、jQuery UI の Draggable 機能を使用して、Web ページ要素の自由なドラッグ効果を実現する方法について詳しく説明します。詳細なコード例、パラメータ設定、よくある質問への回答が含まれているため、この便利なテクニックを簡単に習得できます。

1. jQuery UI Draggable とは?

  • jQuery UI Draggable は、任意の Web ページ要素を簡単にドラッグできるようにする強力なツールです。
  • ユーザーはマウスで要素をクリックしてドラッグし、ページ上の位置を変更できます。
  • これは、ドラッグアンドドロップ可能なリスト、画像の並べ替え、カスタムレイアウトなど、インタラクティブなユーザーインターフェースを作成するのに非常に便利です。

2. jQuery UI Draggable の使用方法

2.1 jQuery と jQuery UI ライブラリの読み込み

HTML ファイルの <head> セクションに、jQuery と jQuery UI ライブラリファイルを読み込みます。


<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>

2.2 ドラッグ可能要素の作成

HTML を使用して、ドラッグ可能にする要素を作成します。


<div id="draggable" class="ui-widget-content">
  <p>ドラッグしてください!</p>
</div>

2.3 Draggable の初期化

JavaScript コードを使用して、ドラッグ可能にする要素を選択し、.draggable() メソッドを呼び出します。


<script>
$(function() {
  $("#draggable").draggable();
});
</script>

3. Draggable パラメータ設定

Draggable は、ドラッグ動作をカスタマイズするための豊富なパラメータオプションを提供します。一般的なパラメータをいくつか紹介します。

パラメータ 説明
axis ドラッグ方向を制限します("x"、"y"、または "both")。
containment ドラッグ範囲を指定します。親要素、ウィンドウ、またはカスタム領域を指定できます。
handle ドラッグ可能領域を設定します。たとえば、要素のタイトルバーなどです。
grid ドラッググリッドを設定します。要素はグリッド線上のみを移動できます。
revert ドラッグ終了後に初期位置に戻すかどうかを設定します。

<script>
$(function() {
  $("#draggable").draggable({
    axis: "x",
    containment: "parent",
    handle: "h3",
    grid: [50, 50],
    revert: true
  });
});
</script>

4. Draggable イベント

Draggable は、ドラッグプロセスのさまざまな段階でカスタム操作を実行できる複数のイベントを提供します。

イベント 説明
create Draggable インスタンスの作成時にトリガーされます。
start 要素のドラッグ開始時にトリガーされます。
drag 要素のドラッグ中に継続的にトリガーされます。
stop 要素のドラッグ停止時にトリガーされます。

<script>
$(function() {
  $("#draggable").draggable({
    start: function(event, ui) {
      console.log("ドラッグ開始!");
    },
    stop: function(event, ui) {
      console.log("ドラッグ停止!");
    }
  });
});
</script>

5. まとめ

jQuery UI Draggable は、使いやすく強力なツールであり、Web サイトにインタラクティブなドラッグ機能を簡単に追加して、ユーザーエクスペリエンスを向上させることができます。Draggable のパラメータとイベントを柔軟に使用することで、さまざまなニーズを満たすさまざまなカスタムドラッグ効果を作成できます。

jQuery UI Draggable 関連Q&A

Q1: ドラッグできる範囲を特定の要素内に制限するにはどうすればよいですか?

A1: containment パラメータを使用し、コンテナとして要素のセレクタを指定します。

Q2: ドラッグ中に要素の透明度を変更するにはどうすればよいですか?

A2: drag イベントハンドラ内で、CSS の opacity プロパティを変更します。

Q3: ドラッグされた要素の位置を取得するにはどうすればよいですか?

A3: stop イベントハンドラ内で、ui.position オブジェクトの left および top プロパティを使用します。