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{ 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.ondragstart=function(e){ console.log('事件源p3开始拖动'); //记录刚一拖动时,鼠标在飞机上的偏移量 offsetX= e.offsetX; offsetY= e.offsetY; } //事件源p3拖动中 p3.ondrag=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.ondragend=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>