HTML5 拖放(Drag 和 Drop)
拖放
拖放是一種常見的特性,即抓取對象以后拖到另一個位置。
在 HTML5 中,拖放是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖放。
1、HTML5拖放
拖放(Drag和drop)是HTML5標(biāo)準(zhǔn)的組成部分。
2、拖動開始
ondragstart:調(diào)用了一個函數(shù),drag(event),它規(guī)定了被拖動的數(shù)據(jù)
3、設(shè)置拖動數(shù)據(jù)
setData():設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值。
4、放入位置
ondragover:事件規(guī)定在何處放置被拖動的數(shù)據(jù)。
5、放置
ondrop:當(dāng)放置被拖放數(shù)據(jù)時,會發(fā)生drop事件
總結(jié):
在拖動目標(biāo)上觸發(fā)事件(源元素):
ondragstart:用戶開始拖動元素時觸發(fā)
ondrag:元素正在拖動時觸發(fā)
ondragend:用戶完成元素拖動后觸發(fā)
釋放目標(biāo)時觸發(fā)的事件
ondragenter:當(dāng)被鼠標(biāo)拖動的對象進(jìn)入其容器范圍內(nèi)時觸發(fā)此事件
ondragover:當(dāng)某被拖動的對象在另一對象容器范圍內(nèi)拖動時觸發(fā)此事件
ondragleave:當(dāng)被鼠標(biāo)拖動的對象離開其容器范圍內(nèi)時觸發(fā)此事件
ondrop:在一個拖動過程中,釋放鼠標(biāo)鍵時觸發(fā)此事件
拖放實例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>drop</title> <style> .box{ width: 400px; height: 400px; } #box1{ float: left; background-color: #CCCCCC; } #box2{ float: left; background-color: aqua; } </style> <script> var box1Div, msgDiv, img1, box2Dib; window.onload = function () { box1Div = document.getElementById("box1"); msgDiv = document.getElementById("msg"); img1 = document.getElementById("img1"); box2Div = document.getElementById("box2"); 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) { //創(chuàng)建節(jié)點 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> </head> <body> <div id="box1" class="box"></div> <div id="box2" class="box"></div> <img id="img1" src="http://img4.imgtn.bdimg.com/it/u=4240085321,3307603809&fm=21&gp=0.jpg" alt=""> <div id="msg"></div> </body> </html>