在HTML5的pc上面實現了相當多的功能,工作中也用到了拖拉上傳,特地記錄下該功能
在拖動目標上觸發事件 (源元素):
	ondragstart - 用戶開始拖動元素時觸發
	ondrag - 元素正在拖動時觸發
	ondragend - 用戶完成元素拖動后觸發
釋放目標時觸發的事件:
	ondragenter - 當被鼠標拖動的對象進入其容器范圍內時觸發此事件
	ondragover - 當某被拖動的對象在另一對象容器范圍內拖動時觸發此事件
	ondragleave - 當被鼠標拖動的對象離開其容器范圍內時觸發此事件
	ondrop - 在一個拖動過程中,釋放鼠標鍵時觸發此事件
上代碼
<html lang="en"><head>  <meta charset="UTF-8">  <title>拖拽</title>  <style>    .box{width:800px;height:600px;float:left;}    #box1{background-color:#ccc;}    #box2{background-color:#000;}  </style></head><body>  <div id="box1" class="box"></div>  <div id="box2" class="box"></div>  <img id="img1" src="1.jpg">  <div id="msg"></div></body><script>var box1Div,box2Div,msgDiv,img1; window.onload = function(){  box1Div = document.getElementById('box1');  box2Div = document.getElementById('box2');  msgDiv = document.getElementById('msg');  img1 = document.getElementById('img1');  box1Div.ondragover = function(e){e.preventDefault();}  box2Div.ondragover = function(e){e.preventDefault();}  img1.ondragstart = function(e){e.dataTransfer.setData('imgId','img1');}  box1Div.ondrop = dropImghandler;  box2Div.ondrop = dropImghandler;}function dropImghandler(e){  showObj(e);//獲取拖放所有信息  showObj(e.dataTransfer);//獲取文件  e.preventDefault();  var img = document.getElementById(e.dataTransfer.getData('imgId'));  e.target.appendChild(img);}function showObj(obj){  var s = '';  for(var k in obj){s += k+":"+obj[k]+"<br/>";}  msgDiv.innerHTML = s;}</script></html>	該功能是可以將圖片拖拉到左右兩個div中的方法,我覺得沒啥用,可以當作哈啤
	下面是拖拉上傳代碼,后端PHP獲取到$_FILES之后就可以搞起來了
<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>拖放上傳</title>  <style>    #imgContainer{background:#ccc;width:500px;height:500px;}  </style></head><body>  <div id="imgContainer"></div>  <div id="msg"></div></body><script>var imgContainer,msgDiv;window.onload = function(e){  imgContainer = document.getElementById('imgContainer');  msgDiv = document.getElementById('msg');  imgContainer.ondragover = function(e){    e.preventDefault();  }  imgContainer.ondrop = function(e){    e.preventDefault();    var f = e.dataTransfer.files[0];      //這時已經獲取到文件了,具體想要用第幾個文件自己處理,發post請求后端處理就行了!    //下面是圖片獲取到之后顯示在imgContainer中的流程    // var fileReader = new FileReader();    // fileReader.onload=function(){    // imgContainer.innerHTML = "<img src=/""+fileReader.result+"/">"    // }    // fileReader.readAsDataURL(f);    // showObj(e);  //顯示上傳信息    // showObj(e.dataTransfer.files);  }}function showObj(obj){  var s = '';  for(var k in obj){s += k+":"+obj[k]+"<br/>";}  msgDiv.innerHTML = s;}</script></html>以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答