有两个问题请老师解答一下,谢谢!
关于H5本地图片拖拽的两个问题,请老师解答一下,谢谢!
添加了ondragleave事件,但是快速拖拽进div内的话,会导致div内的文字交替闪烁,慢慢将图片拖拽进去则不会,该怎么解决?
还有,阻止浏览器在新窗口中打开本地图片事件会失败。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html5拖拽事件</title> <style type="text/css"> body{ margin: 0; } #box{ width: 300px; min-height: 300px; border: 2px solid #fce; margin: 20px auto 0; } span{ width: 300px; height: 300px; color: #c53; font-size: 20px; text-align: center; display: block; line-height: 300px; } </style> </head> <body> <div id="box"><span>嗨,图片放这里 o!</span></div> <script type="text/javascript"> document.ondragover=function(e){ e.preventDefault(); } document.ondrop=function(e){ //阻止浏览器在新窗口中打开本地图片 e.preventDefault(); } //目标对象事件 // var oSpan=document.getElementById("box").getElementsByTagName("span"); var oSpan=document.querySelector("#box span"); //拖拽模块 box.ondragover=function(e){ e.preventDefault(); oSpan.style.display="none"; console.log("over"); } box.ondragleave=function(e){ e.preventDefault(); oSpan.style.display="block"; console.log("leave"); } box.ondrop=function(e){ e.preventDefault(); var imgFiles=e.dataTransfer.files; for(var i=0;i<imgFiles.length;i++){ var imgRead=new FileReader();//文件读取器 imgRead.readAsDataURL(imgFiles[i]);//要读取的文件对象 imgRead.onload=function(){ //console.log(this.result); console.log(i+"张图片的数据读取完成"); var img=new Image(); img.src=this.result; img.style.width="100px"; img.style.height="100px"; box.appendChild(img); } } } //ondragleave事件会导致div内的文字交替闪烁;且导致阻止浏览器在新窗口打开本地图片失败。该怎么解决? </script> </body> </html>
0
收起
正在回答 回答被采纳积分+1
1回答
响应式开发与常用框架 2018
- 参与学习 人
- 提交作业 2198 份
- 解答问题 5012 个
如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星