HTML 5 拖放(Drag 和drop)

Posted LoveSuk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML 5 拖放(Drag 和drop)相关的知识,希望对你有一定的参考价值。

浏览器支持

Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5。

1、把标签 draggable 属性设置为 true。

2、向标签添加ondragstart 属性调用了一个函数drag(event)。

    function drag(ev){

       ev.dataTransfer.setData("Text",ev.target.id);    }  //设置被拖数据的数据类型和值

3、向要拖放的位置(目标元素)标签添加ondragover属性调用一个函数allowDrop(event)。

    function allowDrop(ev){
       ev.preventDefault();} //避免浏览器对数据的默认处理

4、向要拖放的位置(目标元素)标签添加ondrop属性调用一个函数drop(event)。

    当放置被拖数据时,会发生 drop 事件。

    function drop(ev){
       ev.preventDefault(); //避免浏览器对数据的默认处理
       var data=ev.dataTransfer.getData("Text"); //获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
       ev.target.appendChild(document.getElementById(data));  } //把被拖元素追加到目标元素中

5、示例如下:

<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>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
  <img src="aa.png" draggable="true" ondragstart="drag(event)" id="drag1" />
</div>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

执行如下:

技术分享

我们可将图片来回拖放在div1和div2中。

 

以上是关于HTML 5 拖放(Drag 和drop)的主要内容,如果未能解决你的问题,请参考以下文章

原生拖拽,拖放事件(drag and drop)

HTML5拖放(Drag和Drop)元素使用详解

JavaScript 学习-50.实现页面菜单拖放(Drag 和 Drop)

Draggabilly – 轻松实现拖放功能(Drag & Drop)

H5简单拖放(Drag/Drop)

拖放网站生成器javascript库。