HTML5 Drag & Drop for Mobile



这是我对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

希望这对您有用。

请参阅http://caniuse.com/#feat=dragnDrop

最好的解决方案是检测对拖放的支持(确保这不会在支持API的浏览器的移动版本中为您提供误报),然后使用JavaScript在移动设备上使用JavaScript进行多填充。这还将有助于提供旧版浏览器版本的支持,以预先对拖放的本机支持。

您可以使用出色的yepnope条件加载库来运行测试,然后有条件加载一个或多个脚本以提供javascript支持拖放,或者您可以使用Modernizr来执行测试并加载脚本。/p>

,因为大多数移动浏览器仍然不支持HTML5拖放掉落,因此,如果某些仍在寻找的解决方案,我创建了一个简单的拖放,可以在大多数移动浏览器中使用使用拉斐尔。http://xtrace.blogspot.de/2013/01/simple-drag-and-drop-with-raphael.html

最新更新