这是我对Whatwg HTML5拖放的实现:
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.innerHTML+=" <p>"+document.getElementById(data).innerHTML+"</p>";
}
.div {
width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;
}
<div class="div" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div class="div" ondrop="drop(event)" ondragover="allowDrop(event)">
<button id="drag1" draggable="true" ondragstart="drag(event)" width="336" height="69">Code</button>
<button id="drag2" draggable="true" ondragstart="drag(event)" width="336" height="69">Code</button>
</div>
它在Google Chrome中效果很好,但在iOS或Android中效果不佳。我已经阅读了有关此的其他主题,但其中大多数建议使用jQuery或JavaScript插件。
是否可以使HTML拖放实现在iOS和Android(移动设备)上工作?
我也有相同的需求,并写了一个启用HTML5拖动/滴在移动设备上(Android和iOS)的polyfill:
https://github.com/bernardo-castilho/dragdroptouch
希望这对您有用。
最好的解决方案是检测对拖放的支持(确保这不会在支持API的浏览器的移动版本中为您提供误报),然后使用JavaScript在移动设备上使用JavaScript进行多填充。这还将有助于提供旧版浏览器版本的支持,以预先对拖放的本机支持。
您可以使用出色的yepnope条件加载库来运行测试,然后有条件加载一个或多个脚本以提供javascript支持拖放,或者您可以使用Modernizr来执行测试并加载脚本。/p>
,因为大多数移动浏览器仍然不支持HTML5拖放掉落,因此,如果某些仍在寻找的解决方案,我创建了一个简单的拖放,可以在大多数移动浏览器中使用使用拉斐尔。http://xtrace.blogspot.de/2013/01/simple-drag-and-drop-with-raphael.html