6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

jQuery-UIでdiv要素をぐりぐり動かす

Last updated at Posted at 2014-12-26

jQuery-UIでdiv要素をぐりぐり動かす

まずhtml5で記述するとどうなるか
①ドラッグ

<script>
  function f_dragstart(event){
    //ドラッグするデータのid名をDataTransferオブジェクトにセット
    event.dataTransfer.setData("text", event.target.id);
  }
</script>

~~~~~

<div id="div1" draggable="true" ondragstart="f_dragstart(event)" style="position: relative;">~</div>

draggable="true"とすることによってその要素をドラッグ可能にする。イベントについてはondragstartで定義し、それはscriptタグに記述する必要がある。

②ドロップ

/***** ドラッグ要素がドロップ要素に重なっている間の処理 *****/
function f_dragover(event){
  //dragoverイベントをキャンセルして、ドロップ先の要素がドロップを受け付けるようにする
  event.preventDefault();
}

/***** ドロップ時の処理 *****/
function f_drop(event){
  //ドラッグされたデータのid名をDataTransferオブジェクトから取得
  var id_name = event.dataTransfer.getData("text");
  //id名からドラッグされた要素を取得
  var drag_elm =document.getElementById(id_name);
  //ドロップ先にドラッグされた要素を追加
  event.currentTarget.appendChild(drag_elm);
  //エラー回避のため、ドロップ処理の最後にdropイベントをキャンセルしておく
  event.preventDefault();
}

~~~~~

<div id="div3" dropzone="move" ondragover="f_dragover(event)" ondrop="f_drop(event)">~</div>

dropzoneに処理形式を記述し、ドラッグと同様にondragover、ondropでイベントを定義する。

サンプルでは基本的な記述しか説明したいないが、jQuery-UIと同様、様々なタイミングでイベントを取得できる。

参考としたサイトを以下に記す。
http://www.htmq.com/dnd/

また、前回あれこれと話題に上がったリサイズについては、CSS3のresizeプロパティを指定することで実現できる。

resize: both;

こちらについては以下を参照。
http://www.htmq.com/css3/resize.shtml

HTML5での実現→リサイズ以外はJavaScript制御が必要

ではこれらをjQueryUIを用いて実現しようとするとどうなるか

$("要素").draggable(); //ドラッグ可能にする
$("要素").droppable(); //ドロップ領域に指定する
$("要素").resizable(); //リサイズ可能にする

それぞれがたったこれだけで実現できる(勿論イベント処理の記述は必要ではあるが)

以下リファレンスサイト(順にドラッグ、ドロップ、リサイズ)
http://jqueryui.com/draggable/
http://jqueryui.com/droppable/
http://jqueryui.com/resizable/

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?