js拖动事件
作者:互联网
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>拖动事件</title>
<style>
.droptarget {
float:left;
width:100px;
height:35px;
margin:15px;
padding:10px;
border:1px solid #aaaaaa;
}
</style>
</head>
<body>
<p>在两个矩形框中来回拖动 p 元素:</p>
<divclass="droptarget" οndragοver="allowDrag(event)"οndrοp="drop(event)">
<p id="dragtarget"draggable="true" οndragstart="dragStart(event)"οndrag="dragging()">拖动我!</p>
</div>
<divclass="droptarget" οndragοver="allowDrag(event)"οndrοp="drop(event)"></div>
<pstyle="clear:both;"><strong>注意:</strong>Internet Explorer 8 及更早 IE 版本或 Safari 5.1 及更早版本的浏览器不支持 drag 事件。</p>
<pid="demo"></p>
<script>
//开始拖动p标签被拖拽的元素必须设置draggable="true"
functiondragStart(event){
var event =event||window.event
//在进行拖放操作的时候,dataTransfer对象可以用来保存被拖动的数据。它可以保存一项或多项数据、一种或多数数据类型。通俗一点讲,就是可以通过它来传输被拖动的数据,以便在拖拽结束的时候,对数据进行其他的操作。
event.dataTransfer.setData("text",event.target.id);
}
//拖拽过程中
function dragging(){
document.getElementById("demo").innerHTML = "p元素正在被拖拽!";
}
//拖动元素在放置目标上
functionallowDrag(event){
//阻止默认事件
event.preventDefault();
}
//拖动元素放在目标区域时
function drop(event){
console.log(event);
//获取被拖动元素id
var data =event.dataTransfer.getData("text");
//在目标区域添加元素
event.target.appendChild(document.getElementById(data));
document.getElementById("demo").innerHTML = "p元素已被拖拽!";
}
</script>
</body>
</html>
效果:
标签:dataTransfer,拖动,元素,拖拽,getElementById,事件,js,event 来源: https://blog.csdn.net/yanjin_xiaoxiao/article/details/121317626