HTML5を初めて書いてみました
HTML5を初めて書いてみました。とりあえず、本を見ながら。
- 作者: 白石俊平,株式会社あゆた
- 出版社/メーカー: 日経BP社
- 発売日: 2010/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 15人 クリック: 635回
- この商品を含むブログ (54件) を見る
ドラッグ&ドロップのAPIを使ってみたんですが、なんだか挙動がおかしい気が...。
Firefox3.6では動いたんだけれど、これでいいのかなあ。
サンプルソースとかダウンロードできるといいんだけれど。
あと、zen-codingのHTML5の場合を調べておこう
※追記
あ、サンプルっぽいのがありました
実際のソース
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5</title> </head> <body> <h1>HTML5</h1> <ul id="list" ondragstart="onDragStart(event)" ondragenter="onDragEnter(event)" ondragover="onDragOver(event)" ondrop="onDrop(event)" > <li class="listItem" id="item1" draggable="true">りんご</li> <li class="listItem" id="item2" draggable="true">ぶどう</li> <li class="listItem" id="item3" draggable="true">みかん</li> <li class="listItem" id="item4" draggable="true">すいか</li> <li class="listItem" id="item5" draggable="true">かき</li> </ul> <script> // function onDragStart(event) { //alert(event.target.tagName.toLowerCase()); if(event.target.tagName && event.target.tagName.toLowerCase() == "li") { event.dataTransfer.setData("listItemId", event.target.id); }else{ event.preventDefault(); } } // ドロップ処理 function onDrop(event) { var id = event.dataTransfer.getData("listItemId"); var li = document.getElementById(id); //alert(event.currentTarget.id); //alert(li.parentNode.id); if(li && li.parentNode == event.currentTarget){ alert('drop'); li.parentNode.removeChild(li); event.currentTarget.appendChild(li); } event.stopPropagation(); // イベントのバブリングを止める } // ドラッグ中の処理。断続的に発生 function onDragOver(event) { event.preventDefault(); // デフォルト動作を止める } // ドラック中のマウスカーソルが要素と重なる場合 function onDragEnter(event) { var types = event.dataTransfer.types; for(var i=0; i<types.length; i++) { if(types[i] == "listItemId") { //alert('hogehoge'); event.preventDefault(); return; } } } </script> </body> </html>