HTML 5 ÍÏ·Å

ÍÏ·Å£¨Drag ºÍ drop£©ÊÇ HTML5 ±ê×¼µÄ×é³É²¿·Ö¡£

ÍÏ·Å

ÍÏ·ÅÊÇÒ»ÖÖ³£¼ûµÄÌØÐÔ£¬¼´×¥È¡¶ÔÏóÒÔºóÍϵ½ÁíÒ»¸öλÖá£

ÔÚ HTML5 ÖУ¬ÍÏ·ÅÊDZê×¼µÄÒ»²¿·Ö£¬ÈκÎÔªËØ¶¼Äܹ»ÍÏ·Å¡£

ä¯ÀÀÆ÷Ö§³Ö

Internet Explorer 9¡¢Firefox¡¢Opera 12¡¢Chrome ÒÔ¼° Safari 5 Ö§³ÖÍÏ·Å¡£

×¢ÊÍ£ºÔÚ Safari 5.1.2 Öв»Ö§³ÖÍÏ·Å¡£

HTML5 ÍÏ·ÅʵÀý

ÏÂÃæµÄÀý×ÓÊÇÒ»¸ö¼òµ¥µÄÍÏ·ÅʵÀý£º

ʵÀý

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<div id="div1" ondrop="drop(event)"
ondragover="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"
ondragstart="drag(event)" width="336" height="69" />

</body>
</html>

Ç××ÔÊÔÒ»ÊÔ

Ëü¿´ÉÏÈ¥Ò²ÐíÓÐЩ¸´ÔÓ£¬²»¹ýÎÒÃÇ¿ÉÒÔ·Ö±ðÑо¿ÍÏ·ÅʼþµÄ²»Í¬²¿·Ö¡£

ÉèÖÃÔªËØÎª¿ÉÍÏ·Å

Ê×ÏÈ£¬ÎªÁËÊ¹ÔªËØ¿ÉÍ϶¯£¬°Ñ draggable ÊôÐÔÉèÖÃΪ true £º

<img draggable="true" />

Í϶¯Ê²Ã´ - ondragstart ºÍ setData()

È»ºó£¬¹æ¶¨µ±ÔªËر»Í϶¯Ê±£¬»á·¢Éúʲô¡£

ÔÚÉÏÃæµÄÀý×ÓÖУ¬ondragstart ÊôÐÔµ÷ÓÃÁËÒ»¸öº¯Êý£¬drag(event)£¬Ëü¹æ¶¨Á˱»Í϶¯µÄÊý¾Ý¡£

dataTransfer.setData() ·½·¨ÉèÖñ»ÍÏÊý¾ÝµÄÊý¾ÝÀàÐͺÍÖµ£º

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

ÔÚÕâ¸öÀý×ÓÖУ¬Êý¾ÝÀàÐÍÊÇ "Text"£¬ÖµÊÇ¿ÉÍ϶¯ÔªËØµÄ id ("drag1")¡£

·Åµ½ºÎ´¦ - ondragover

ondragover ʼþ¹æ¶¨Ôںδ¦·ÅÖñ»Í϶¯µÄÊý¾Ý¡£

ĬÈϵأ¬ÎÞ·¨½«Êý¾Ý/ÔªËØ·ÅÖõ½ÆäËûÔªËØÖС£Èç¹ûÐèÒªÉèÖÃÔÊÐí·ÅÖã¬ÎÒÃDZØÐë×èÖ¹¶ÔÔªËØµÄĬÈÏ´¦Àí·½Ê½¡£

ÕâҪͨ¹ýµ÷Óà ondragover ʼþµÄ event.preventDefault() ·½·¨£º

event.preventDefault()

½øÐзÅÖà - ondrop

µ±·ÅÖñ»ÍÏÊý¾Ýʱ£¬»á·¢Éú drop ʼþ¡£

ÔÚÉÏÃæµÄÀý×ÓÖУ¬ondrop ÊôÐÔµ÷ÓÃÁËÒ»¸öº¯Êý£¬drop(event)£º

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}

´úÂë½âÊÍ£º

  • µ÷Óà preventDefault() À´±ÜÃâä¯ÀÀÆ÷¶ÔÊý¾ÝµÄĬÈÏ´¦Àí£¨drop ʼþµÄĬÈÏÐÐΪÊÇÒÔÁ´½ÓÐÎʽ´ò¿ª£©
  • ͨ¹ý dataTransfer.getData("Text") ·½·¨»ñµÃ±»ÍϵÄÊý¾Ý¡£¸Ã·½·¨½«·µ»ØÔÚ setData() ·½·¨ÖÐÉèÖÃΪÏàͬÀàÐ͵ÄÈκÎÊý¾Ý¡£
  • ±»ÍÏÊý¾ÝÊDZ»ÍÏÔªËØµÄ id ("drag1")
  • °Ñ±»ÍÏÔªËØ×·¼Óµ½·ÅÖÃÔªËØ£¨Ä¿±êÔªËØ£©ÖÐ

¸ü¶àʵÀý

À´»ØÍÏ·ÅͼƬ
ÈçºÎÔÚÁ½¸ö <div> ÔªËØÖ®¼äÍÏ·ÅͼÏñ¡£
VUE