DD: Basic Drag and Drop
YUIに最初に掲示されているサンプルは、3つのDraggableなDivを作成するもの。
超基本的ではあるが、サンプリングしておく。
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>Ajax_Sampling</TITLE> <style type="text/css"> /* Drag and Dropする要素に共通のスタイル*/ .dd-demo { position:relative; border:4px solid #666; text-align:center; color:#fff; cursor:move; height:60px; width:60px; } .dd-demo-em { border:4px solid purple; } /* Drag and Dropする要素に個別のスタイル*/ #dd-demo-1 { background-color:#6D739A;top:0px; left:105px; } #dd-demo-2 { background-color:#566F4E;top:50px; left:245px; } #dd-demo-3 { background-color:#7E5B60;top:-150px; left:385px; } </style> <!-- 読み込むjs --> <script type="text/javascript" src="scripts/yui/yahoo-dom-event/yahoo-dom-event.js" > </script> <script type="text/javascript" src="scripts/yui/dragdrop/dragdrop-min.js" > </script> <script type="text/javascript"> var dd, dd2, dd3; // DomのReadyで発火する。 YAHOO.util.Event.onDOMReady(function() { dd = new YAHOO.util.DD("dd-demo-1"); dd2 = new YAHOO.util.DD("dd-demo-2"); dd3 = new YAHOO.util.DD("dd-demo-3"); }); </script> </HEAD> <BODY class=" yui-skin-sam"> <!-- Drag and Dropする要素 --> <div id="dd-demo-1" class="dd-demo">デモ1</div> <div id="dd-demo-2" class="dd-demo">デモ2</div> <div id="dd-demo-3" class="dd-demo">デモ3</div> </BODY> </HTML>
Draggalble FloatなDivが、
dd = new YAHOO.util.DD("dd-demo-1");
だけのコードで書けるのは、小気味いい。
デモ画面は以下。
動かしてみると、重ねた場合、インスタンスを作成した順にz軸が大きく設定されているということ。
デモ1をデモ3に重ねると、デモ1が下に入ってしまう。
直感的には、Dragしていったものが上にくるのが望ましいから、DropイベントでZ軸を変えるようにJavascriptで書いてしまうのかな。
YUIで用意がされているかもしれない。