ÖÚËùÖÜÖª£¬ÔÚĿǰÖËÊÖ¿ÉÈȵÄweb¿ª·¢ÖУ¬html5¸üÊÇÊ×µ±ÆäÖУ¬µ±È»£¬ÎÒÃÇ˵µÄhtml5°üÀ¨£¨h5+c3+js+api£©ÕâЩ×ܺͣ¬ÓÐÓïÒå¸üÇ¿µÄh5±êÇ©£¬ÓкܸøÁ¦µÄÐÂÔö±íµ¥£¬¼°ÆäÒôƵ¼°ÆäÊÓÆµµÄµ÷Óã¬canvas£¬±¾µØ´æ´¢£¬Ç¿´óµÄcss3£¬¹ý¶É£¬¶¯» 3DЧ¹ûµÈµÈÁîÈËÑÛ»¨çÔÂÒ£¬ÄÇô£¬½ñÌì ÎÒÃǾÍÈ¡Õâ±ùɽһ½ÇµÄhtml5×Ô´øÍÏ×§À´ËµËµ £¡£¡
֮ǰµÄÍÏ×§ÎÒÃǸü¶àµÄÊÇÀûÓÃJSÈ¥×öÕâ¼þÊÂÇ飬µ«ÊÇ£¬ÔÚ×îеÄhtml5ÀïÃæ£¬ÎÒÃǾͿÉÒÔÖ±½ÓÀûÓÃÒ»¸öhtml5µÄÍÏ×§APIȥʵÏÖÕâÖÖЧ¹û£¬ÎÒÃÇÊ×ÏÈ À´¿´ÏÂÕâЩAPI
DataTransfer ¶ÔÏó£ºÍÏ×§¶ÔÏóÓÃÀ´´«µÝµÄý½é£¬Ê¹ÓÃÒ»°ãΪEvent.dataTransfer¡£
draggable ÊôÐÔ£º¾ÍÊDZêÇ©ÔªËØÒªÉèÖÃdraggable=true£¬·ñÔò²»»áÓÐЧ¹û£¬ÀýÈ磺
<div title="ÍÏ×§ÎÒ" draggable="true">ÎÒ¿ÉÒÔ±»ÍÏ×§Ó´£¡£¡</div>
ondragstart ʼþ£ºµ±ÍÏ×§ÔªËØ¿ªÊ¼±»ÍÏ×§µÄʱºò´¥·¢µÄʼþ£¬´Ëʼþ×÷ÓÃÔÚ±»ÍÏÒ·ÔªËØÉÏ
ondragenter ʼþ£ºµ±ÍÏÒ·ÔªËØ½øÈëÄ¿±êÔªËØµÄʱºò´¥·¢µÄʼþ£¬´Ëʼþ×÷ÓÃÔÚÄ¿±êÔªËØÉÏ
ondragover ʼþ£ºÍÏ×§ÔªËØÔÚÄ¿±êÔªËØÉÏÒÆ¶¯µÄʱºò´¥·¢µÄʼþ£¬´Ëʼþ×÷ÓÃÔÚÄ¿±êÔªËØÉÏ
ondrop ʼþ£º±»ÍÏ×§µÄÔªËØÔÚÄ¿±êÔªËØÉÏͬʱÊó±ê·Å¿ª´¥·¢µÄʼþ£¬´Ëʼþ×÷ÓÃÔÚÄ¿±êÔªËØÉÏ
ondragend ʼþ£ºµ±ÍÏ×§Íê³Éºó´¥·¢µÄʼþ£¬´Ëʼþ×÷ÓÃÔÚ±»ÍÏÒ·ÔªËØÉÏ
Event.preventDefault() ·½·¨£º×èֹĬÈÏʼþÖ´ÐС£ÔÚondragoverÖÐÒ»¶¨ÒªÖ´ÐÐpreventDefault()£¬·ñÔòondropʼþ²»»á±»´¥·¢¡£ÁíÍ⣬Èç¹ûÊÇ´ÓÆäËûÓ¦ÓÃÈí¼þ»òÊÇÎļþÖÐÍ϶«Î÷½øÀ´£¬ÓÈÆäÊÇͼƬµÄʱºò£¬Ä¬Èϵ͝×÷ÊÇÏÔʾÕâ¸öͼƬ»òÊÇÏà¹ØÐÅÏ¢£¬²¢²»ÊÇÕæµÄÖ´ÐÐdrop¡£´ËʱÐèÒªÓÃÓÃdocumentµÄondragoverʼþ°ÑËüÖ±½Ó¸Éµô¡£
Event.effectAllowed ÊôÐÔ£º¾ÍÊÇÍÏ×§µÄЧ¹û¡£
ÀûÓÃÕâЩAPI ÎÒÃǾͿÉÒÔ×öһЩÁбíÒ²ÍÏ×§µ½À¬»øÍ°µÄÒ»¸öÀý×ÓÁË
Ò»¹²ÊÇÕâ¸öÈý¸ö²½Öè ʵÏÖ½«ÁбíÒ»ÍÏ×§µ½À¬»øÍ°ÀïÃæÈ¥£¬Ö±½ÓÉÏ´úÂë
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>html5 drag & drop ÍÏ×§ÓëÍϷŲâÊÔ</title>
<style>
body{font-size:84%;}
.dustbin{width:100px; height:260px; line-height:1.4; background-color:gray; font-size:36px; font-family:"΢ÈíÑźÚ", "Yahei Mono"; text-align:center; text-shadow:-1px -1px #bbb; float:left;}
.dragbox{width:500px; padding-left:20px; float:left;}
.draglist{padding:10px; margin-bottom:5px; border:2px solid #ccc; background-color:#eee; cursor:move;}
.draglist:hover{border-color:#cad5eb; background-color:#f0f3f9;}
.dragremind{padding-top:2em; clear:both;}
</style>
</head>
<body>
<div class="dustbin"><br />À¬<br />»ø<br />Ïä</div>
<div class="dragbox">
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí1</div>
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí2</div>
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí3</div>
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí4</div>
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí5</div>
<div class="draglist" title="ÍÏ×§ÎÒ" draggable="true">Áбí6</div>
</div>
<div class="dragremind"></div>
<script>
var $ = function(selector) {
if (!selector) { return []; }
var arrEle = [];
if (document.querySelectorAll) {
arrEle = document.querySelectorAll(selector);
} else {
var oAll = document.getElementsByTagName("div"), lAll = oAll.length;
if (lAll) {
var i = 0;
for (i; i<lAll; i+=1) {
if (/^\./.test(selector)) {
if (oAll[i].className === selector.replace(".", "")) {
arrEle.push(oAll[i]);
}
} else if(/^#/.test(selector)) {
if (oAll[i].id === selector.replace("#", "")) {
arrEle.push(oAll[i]);
}
}
}
}
}
return arrEle;
};
var eleDustbin = $(".dustbin")[0], eleDrags = $(".draglist"), lDrags = eleDrags.length, eleRemind = $(".dragremind")[0], eleDrag = null;
for (var i=0; i<lDrags; i+=1) {
eleDrags[i].onselectstart = function() {
return false;
};
eleDrags[i].ondragstart = function(ev) {
ev.dataTransfer.effectAllowed = "move";
ev.dataTransfer.setData("text", ev.target.innerHTML);
ev.dataTransfer.setDragImage(ev.target, 0, 0);
eleDrag = ev.target;
return true;
};
eleDrags[i].ondragend = function(ev) {
ev.dataTransfer.clearData("text");
eleDrag = null;
return false
};
}
eleDustbin.ondragover = function(ev) {
ev.preventDefault();
return true;
};
eleDustbin.ondragenter = function(ev) {
this.style.color = "#ffffff";
return true;
};
eleDustbin.ondrop = function(ev) {
if (eleDrag) {
eleRemind.innerHTML = '<strong>"' + eleDrag.innerHTML + '"</strong>±»ÈÓ½øÁËÀ¬»øÏä';
eleDrag.parentNode.removeChild(eleDrag);
}
this.style.color = "#000000";
return false;
};
</script>
</body>
</html>
±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍUIÅàѵ
ѧԺËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍUIÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/ui