将元素图片放入div盒子内

1、首先设置元素为可拖放:在img标签内加入draggable=”true”.

<img draggable="true">

2、设置元素的拖动:在img标签中用ondragstart属性调用一个函数drag(ev),这个函数中用dataTransfer.setData()方法设置了被拖数据的数据类型和值.

<img ondragstart=”drag(event)”>

function drag(ev){

ev.dataTansfer.setData(“Text”,ev.target.id)//数据类型是Text,值是可拖动元素的id(“drag1”)。

}

3、放到何处-ondragover

在被放置的div中用ondragover来规定设置的允许设置,因为默认无法将数据/元素放置到其他元素中,如果需要允许放置,必须阻止对元素默认的处理方式。

这时候用ondragover来调用一个函数alloeDrop(ev),函数内部规定了event.preventDefault()方法用来阻止元素的默认处理方式

<div ondragover=”allowDrop(event)”></div>

function allowDrop(ev){

ev.prentDefault();

}

4、下面就是放置了-ondrop

在被放置的div中设置ondrop=”drop(event)”调用drop(ev)函数,函数中规定了放置的过程。

<div ondrop="drop(event)"></div>

Function drop(ev){

ev.preventDefault();//用来避免浏览器对数据的默认处理

  • var data=ev.dataTransfer.getData(”Text”);// 通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。

ev.target.appendChild (document.getElementById(data));// 被拖数据是被拖元素的 id ("drag1")把被拖元素追加到放置元素(目标元素)中

}

05-20 15:10