這篇文章將為大家詳細(xì)講解有關(guān)HTML5實(shí)現(xiàn)元素拖拽的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都航空箱小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站設(shè)計(jì)營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺(jué)設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
先上示例:
index.html
XML/HTML Code復(fù)制內(nèi)容到剪貼板
JavaScript Code復(fù)制內(nèi)容到剪貼板
app1.js
/**
* app1.js
*/
var oBox1,
oBox2,
oImg1;
window.onload = function(){
oBox1 = document.getElementById('box1');
oBox2 = document.getElementById('box2');
oImg1 = document.getElementById('img1');
//
oBox1.ondragover = oBox2.ondragover = function(e){
e.preventDefault();
};
//
oImg1.ondragstart = function(e){
e.dataTransfer.setData('text', e.target.id);
};
oBox1.ondrop = dropImg;
oBox2.ondrop = dropImg;
};
function dropImg(e){
e.preventDefault();
var tempImg = document.getElementById(e.dataTransfer.getData('text'));
e.target.appendChild(tempImg);
}
涉及知識(shí)點(diǎn)
在拖放的過(guò)程中會(huì)觸發(fā)以下事件:
在拖動(dòng)目標(biāo)上觸發(fā)事件 (源元素)
ondragstart - 用戶開始拖動(dòng)元素時(shí)觸發(fā)
ondrag - 元素正在拖動(dòng)時(shí)觸發(fā)
ondragend - 用戶完成元素拖動(dòng)后觸發(fā)
釋放目標(biāo)時(shí)觸發(fā)的事件
ondragenter - 當(dāng)被鼠標(biāo)拖動(dòng)的對(duì)象進(jìn)入其容器范圍內(nèi)時(shí)觸發(fā)此事件
ondragover - 當(dāng)某被拖動(dòng)的對(duì)象在另一對(duì)象容器范圍內(nèi)拖動(dòng)時(shí)觸發(fā)此事件
ondragleave - 當(dāng)被鼠標(biāo)拖動(dòng)的對(duì)象離開其容器范圍內(nèi)時(shí)觸發(fā)此事件
ondrop - 在一個(gè)拖動(dòng)過(guò)程中,釋放鼠標(biāo)鍵時(shí)觸發(fā)此事件
event對(duì)象(以e代替)
e.target
W3Cschool上的解釋是:返回觸發(fā)此事件的元素(事件的目標(biāo)節(jié)點(diǎn)),這個(gè)target屬性只兼容ie9及以上
e.preventDefault()
取消事件的默認(rèn)動(dòng)作。
e.dataTransfer.setData()
設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值:
代碼如下:
e.dataTransfer.setData("Text",ev.target.id); //第一個(gè)參數(shù)為Text(小寫的也行)
e.dataTransfer.getData()
獲得被拖的數(shù)據(jù):
代碼如下:
e.dataTransfer.getData("Text");
關(guān)于“HTML5實(shí)現(xiàn)元素拖拽的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。