draggable="true"属性设置为true,即可以拖拽.
-
通过在拖动dom上设置οndragstart="drag(event)"属性方法,在方法中进行ev.dataTransfer.
setData
(“Text”,ev.target.id);储存. -
在释放目标上设置οndrοp=“drop(event)” 属性方法,通过
dataTransfer.getData("Text")
进行获取到拖动dom.再进行ev.target.appendChild
(document.getElementById(data));添加进去 -
在释放目标上设置οndragοver=allowDrop(event) ,方法中设置event.preventDefault(),阻止关联动作,实现拖拽.
dataTransfer对象可以用来保存被拖动的数据
event.dataTransfer.setData
event.dataTransfer.getData
ondragstart
用户开始拖动元素时触发ondragenter
- 当被鼠标拖动的对象进入其容器范围内时触发此事件ondragover
拖动到放置目标范围内拖动时候触发ondrop
在一个拖动过程中,释放鼠标键时触发此事件。ondragend
- 用户完成元素拖动后触发
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<p>请把 W3School 的图片拖放到矩形中:</p>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br />
<img id="drag1" src="/i/eg_dragdrop_w3school.gif" draggable="true" ondragstart="drag(event)" />