HTML5 拖拽程式碼例項

admin發表於2019-10-05

前端人員對於IE瀏覽器的印象普遍不是太好,對於標準支援滯後甚至不支援。

IE並非事事落後,HTML5 drag and drop拖拽標準就是從IE發展而來,但並沒有做到善始善終。

發展歷程簡略總結如下:

(1).IE4瀏覽器加入拖拽功能,但是能力有限,只有文字和圖片可以被拖拽,只有文字可以作為放置目標。

(2).IE5瀏覽器提升了拖拽功能,幾乎所有的元素都可以作為放置目標。

(3).IE5.5瀏覽器進一步提升拖拽功能,網頁幾乎所有元素都可以被拖拽。

(4).當前的拖拽標準就是從IE瀏覽器發展而來。

下面分享一段通過HTML5標準實現的拖拽效果,本版塊其他文章會對其進行詳細分解。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
p{
  width:100px;
  height:50px;
  background-color:red;
}
#box {
  width:300px; 
  height:200px;
  background-color:#ccc;
}
</style>
<script>
window.onload=function(){
  let odiv=document.getElementById("box");
  let op=document.getElementById("p");

  op.ondragstart = (ev) => {
    ev.dataTransfer.setData("Text",ev.target.id);
  }

  odiv.ondragover = (ev) => {
    ev.preventDefault();
  }

  odiv.ondrop = (ev) => {
    ev.preventDefault();
    let data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
  }
}
</script>
</head>
<body>
<p draggable="true" id="p"></p>
<div id="box"></div>
</body>
</html>

上面程式碼演示了拖拽功能,可以將頂部的紅色矩形拖拽到底部較大的矩形中。

相關文章