HTML5 拖放(Drag 和 Drop)
拖曳
拖曳是一種常見的特性,即抓取物件以後拖曳到另一個位置。
在 HTML5 中,拖曳是標準的一部分,任何元素都能夠拖曳。
1、HTML5拖放
拖放(Drag和drop)是HTML5標準的組成部分。
2、拖曳開始
ondragstart:呼叫了一個函數,drag(event),它規定了被拖曳的資料
3、設定拖曳資料
setData():設定被拖曳資料的資料類型和值。
4、放入位置
ondragover:事件規定在何處放置被拖曳的資料。
5、放置
ondrop:當放置被拖放資料時,會發生drop事件
總結:
在拖曳目標上觸發事件(來源元素):
ondragstart:使用者開始拖曳元素時觸發
ondrag:元素正在拖曳時觸發
ondragend:使用者完成元素拖曳後觸發
釋放目標時觸發的事件
ondragenter:當被滑鼠拖曳的物件進入其容器範圍內時觸發此事件
ondragover:當某被拖曳的物件在另一個物件容器範圍內拖曳時觸發此事件
ondragleave:當被滑鼠拖曳的物件離開其容器範圍內時觸發此事件
ondrop:在一個拖曳過程中,釋放滑鼠鍵時觸發此事件
拖曳實例:
<!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) { //创建节点 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>