效果图:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
#div1 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
margin-bottom: 10px;
}
#div2 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
margin-bottom: 10px;
}
#div3 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
margin-bottom: 10px;
}
.img{
height: 100px;
width: 100px;
padding: 10px;
}
</style>
</head>
<body>
<p>拖动图片到矩形框中:</p>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<div class="img" id="img" ondrop="drop(event)" ondragover="allowDrop(event)"><img id="drag1" src="./images/zhuanpan/draw_wheel_2.png" draggable="true" ondragstart="drag(event)" width="70" height="70"></div>
<script>
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>
</body>
</html>
- 首先我这里要拖放的是img,先将img的draggable设为true。
- 其次主要监听img拖放时的ondragstart事件,和拖放所在位置的div的ondrop和ondragover事件。
ondragstart:
规定当元素被拖动时,会发生什么。
ondrop:
进行放置。
ondragover:
事件规定在何处放置被拖动的数据。