h5新加的特性拖拽事件,但是只适合PC端哦。不多说了上代码
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
body{
position: relative;
margin: 0;
}
body:before{
content: ' ';
display: table;
}
#p3{
position: absolute;
}
#div1{
width: 100px;
height: 100px;
position: absolute;
top:500px;
left:500px;
background: #000;
}
</style>
</head>
<body>
<h1>拖动的源对象可能触发的事件</h1>
<!-- <p class="p1"></p> -->
<img id="p3" src="qd.png"/>
<div id="div1"></div>
<script>
//事件源p3开始拖动
var offsetX,offsetY;
p3.οndragstart=function(e){
console.log('事件源p3开始拖动');
//记录刚一拖动时,鼠标在飞机上的偏移量
offsetX= e.offsetX;
offsetY= e.offsetY;
}
//事件源p3拖动中
p3.οndrag=function(e){
console.log('事件源p3拖动中');
var x= e.pageX;
var y= e.pageY;
console.log(x+'-'+y);
//drag事件最后一刻,无法读取鼠标的坐标,pageX和pageY都变为0
if(x==0 && y==0){
return; //不处理拖动最后一刻X和Y都为0的情形
}
x-=offsetX;
y-=offsetY;
p3.style.left=x+'px';
p3.style.top=y+'px';
}
// 源对象p3拖动结束
p3.οndragend=function(){
console.log('源对象p3拖动结束');
}
//源对象被拖动着进入目标对象
div1.ondragenter = function(){
console.log('drag enter111111111111111111');
}
//源对象被拖动着悬停目标对象上方
div1.ondragover = function(e){
//dragover 事件默认行为:必须触发drag leave
e.preventDefault();// 阻止事件的默认行为,使得drop事件可能触发
//有个默认行为是必须触发dragleave
console.log('drag over');
}
//源对象被拖动着离开了目标对象
div1.ondragleave = function(){
console.log('drag leave');
}
//源对象被拖动着目标对象上方被释放被松手
div1.ondrop = function(){
console.log('drag drop');
}
</script>
</body>
</html>