HTML5 拖放筆記

HTML5拖放(Drag 和 Drop)

拖放(Drag 和 drop)是 HTML5 標(biāo)準(zhǔn)的組成部分肴楷。

拖放

拖放是一種常見的特性婶芭,即抓取對象以后拖到另一個位置贪磺。

在 HTML5 中赋朦,拖放是標(biāo)準(zhǔn)的一部分拧略,任何元素都能夠拖放芦岂。

瀏覽器支持:

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖動。

注意:Safari 5.1.2不支持拖動垫蛆。

設(shè)置元素為可拖放

首先禽最,為了使元素可拖動,把 draggable 屬性設(shè)置為 true :

如:<img ?draggable="true">

拖動什么 - ondragstart 和 setData()

然后袱饭,規(guī)定當(dāng)元素被拖動時川无,會發(fā)生什么。

在上面的例子中虑乖,ondragstart 屬性調(diào)用了一個函數(shù)懦趋,drag(event),它規(guī)定了被拖動的數(shù)據(jù)疹味。

dataTransfer.setData() 方法設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值:

function drag(ev){

? ? ? ?ev.dataTransfer.setData("Text",ev.target.id);

}

放到何處 - ondragover

ondragover 事件規(guī)定在何處放置被拖動的數(shù)據(jù)仅叫。

默認(rèn)地,無法將數(shù)據(jù)/元素放置到其他元素中糙捺。如果需要設(shè)置允許放置诫咱,我們必須阻止對元素的默認(rèn)處理方式。

這要通過調(diào)用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault();

進(jìn)行放置 - ondrop

當(dāng)放置被拖數(shù)據(jù)時洪灯,會發(fā)生 drop 事件坎缭。

在上面的例子中,ondrop 屬性調(diào)用了一個函數(shù),drop(event):

function drop(ev){

? ? ? ev.preventDefault();

? ? ? var data=ev.dataTransfer.getData("Text");

? ? ? ev.target.appendChild(document.getElementById(data));

}

代碼解釋:

調(diào)用 preventDefault() 來避免瀏覽器對數(shù)據(jù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開)

通過 dataTransfer.getData("Text") 方法獲得被拖的數(shù)據(jù)幻锁。該方法將返回在 setData() 方法中設(shè)置為相同類型的任何數(shù)據(jù)凯亮。

被拖數(shù)據(jù)是被拖元素的 id ("drag1")

把被拖元素追加到放置元素(目標(biāo)元素)中

拖放的相關(guān)事件:

ondrag 該事件在元素正在拖動時觸發(fā)

ondragstart 該事件在用戶開始拖動元素時觸發(fā)

ondragenter 該事件在拖動的元素進(jìn)入放置目標(biāo)時觸發(fā)

ondragover 該事件在拖動元素在放置目標(biāo)上時觸發(fā)

ondragleave 該事件在拖動元素離開放置目標(biāo)時觸發(fā)

ondragend 該事件在用戶完成元素的拖動時觸發(fā)

ondrop 該事件在拖動元素放置在目標(biāo)區(qū)域時觸發(fā)

拖放的相關(guān)屬性:

draggable ?———》 ?設(shè)置元素為可拖放 true/false

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哄尔,隨后出現(xiàn)的幾起案子假消,更是在濱河造成了極大的恐慌,老刑警劉巖岭接,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件富拗,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸣戴,警方通過查閱死者的電腦和手機(jī)啃沪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窄锅,“玉大人创千,你說我怎么就攤上這事∪胪担” “怎么了追驴?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疏之。 經(jīng)常有香客問我殿雪,道長,這世上最難降的妖魔是什么锋爪? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任丙曙,我火速辦了婚禮,結(jié)果婚禮上其骄,老公的妹妹穿的比我還像新娘亏镰。我一直安慰自己,他們只是感情好年栓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布拆挥。 她就那樣靜靜地躺著,像睡著了一般某抓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惰瓜,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天否副,我揣著相機(jī)與錄音,去河邊找鬼崎坊。 笑死备禀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曲尸,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼赋续,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了另患?” 一聲冷哼從身側(cè)響起纽乱,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昆箕,沒想到半個月后鸦列,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹏倘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年薯嗤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纤泵。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡骆姐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捏题,到底是詐尸還是另有隱情诲锹,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布涉馅,位于F島的核電站归园,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稚矿。R本人自食惡果不足惜庸诱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晤揣。 院中可真熱鬧桥爽,春花似錦、人聲如沸昧识。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跪楞。三九已至缀去,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甸祭,已是汗流浹背缕碎。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留池户,地道東北人咏雌。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓凡怎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赊抖。 傳聞我的和親對象是個殘疾皇子统倒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容