国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

HTML5拖放效果的實(shí)現(xiàn)代碼

2024-09-05 07:21:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

拖放

拖放是一種常見(jiàn)的特性,即抓取對(duì)象以后拖到另一個(gè)位置。

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

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖動(dòng)。

注意:Safari 5.1.2不支持拖動(dòng).

實(shí)例:

<!DOCTYPE html>  <html>  <head>      <title>拖放</title>      <style type="text/css">          #div1{width:360px;height:220px;padding:20px;border:1px solid black;}      </style>      <script>          function allowDrop(ev) {              ev.preventDefault();          }          function drag(ev) {              ev.dataTransfer.setData("Text", ev.target.id);          }          function drop(ev) {              ev.preventDefault();              var data = ev.dataTransfer.getData("Text");              ev.target.appendChild(document.getElementById(data));          }      </script>  </head>  <body>      <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>      <br />      <img id="drag1" src="img/bg_1.jpg" draggable="true" ondragstart="drag(event)"  width="300px" height="180px" />  </body>  </html>  

首先,為了使元素可拖動(dòng),把draggable 屬性設(shè)置為 true :<img draggable="true">

然后,規(guī)定當(dāng)元素被拖動(dòng)時(shí),會(huì)發(fā)生什么。
在上面的例子中,ondragstart 屬性調(diào)用了一個(gè)函數(shù),drag(event),它規(guī)定了被拖動(dòng)的數(shù)據(jù)。
dataTransfer.setData() 方法設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類(lèi)型和值:

function drag(ev){    ev.dataTransfer.setData("Text",ev.target.id);}

在這個(gè)例子中,數(shù)據(jù)類(lèi)型是 "Text",值是可拖動(dòng)元素的 id ("drag1")。

ondragover 事件規(guī)定在何處放置被拖動(dòng)的數(shù)據(jù)。
默認(rèn)地,無(wú)法將數(shù)據(jù)/元素放置到其他元素中。如果需要設(shè)置允許放置,我們必須阻止對(duì)元素的默認(rèn)處理方式。
這要通過(guò)調(diào)用 ondragover 事件 event.preventDefault() 方法event.preventDefault()

當(dāng)放置被拖數(shù)據(jù)時(shí),會(huì)發(fā)生 drop 事件。
在上面的例子中,ondrop 屬性調(diào)用了一個(gè)函數(shù),drop(event):

function drop(ev){    ev.preventDefault();    var data=ev.dataTransfer.getData("Text");    ev.target.appendChild(document.getElementById(data));}

代碼解釋?zhuān)?br />

調(diào)用 preventDefault() 來(lái)避免瀏覽器對(duì)數(shù)據(jù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開(kāi))
通過(guò) dataTransfer.getData("Text") 方法獲得被拖的數(shù)據(jù)。該方法將返回在 setData() 方法中設(shè)置為相同類(lèi)型的任何數(shù)據(jù)。
被拖數(shù)據(jù)是被拖元素的 id ("drag1")
把被拖元素追加到放置元素(目標(biāo)元素)中

來(lái)回拖動(dòng):

若要在兩個(gè)地方來(lái)回拖動(dòng),只需將上面代碼稍作修改就行了.
將body中的代碼改成:

<body>      <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">      <img id="drag1" src="img/bg_1.jpg" draggable="true" ondragstart="drag(event)"  width="300px" height="180px" /></div>      <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>  </body>  

然后在style樣式中加上#div2就可以了:

<style type="text/css">          #div1,#div2{width:360px;height:220px;padding:20px;border:1px solid black;}      </style>  

這樣就可以實(shí)現(xiàn)來(lái)回拖放了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长武县| 黔西县| 大姚县| 桑植县| 宁阳县| 南开区| 建宁县| 龙海市| 上饶县| 阿城市| 噶尔县| 修文县| 大石桥市| 宜黄县| 宜春市| 马山县| 宜兰市| 宁城县| 崇文区| 双桥区| 东乡县| 泽普县| 安义县| 乌兰县| 鸡西市| 抚松县| 永州市| 元阳县| 新民市| 六盘水市| 手游| 灯塔市| 鹤岗市| 西藏| 元朗区| 北辰区| 嫩江县| 方正县| 松滋市| 盈江县| 都江堰市|