精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長(zhǎng)網(wǎng)

HTML5 拖放 ( drag 和 drop )

拖放 ( drag 和 drop )是 html5 標(biāo)準(zhǔn)的組成部分 。 

拖放

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

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

瀏覽器支持

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

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

HTML5 拖放實(shí)例

下面的例子是一個(gè)簡(jiǎn)單的拖放實(shí)例:

實(shí)例

<!DOCTYPE HTML>
<html>
<head>
<script type="text/JavaScript">
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>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69" />
</body>
</html>

它看上去也許有些復(fù)雜,不過(guò)我們可以分別研究拖放事件的不同部分。

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

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

<img draggable="true">

拖動(dòng)什么 - ondragstart 和 setData()

然后,規(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);
}

Text 是一個(gè) DOMString 表示要添加到 drag object 的拖動(dòng)數(shù)據(jù)的類(lèi)型。值是可拖動(dòng)元素的 id ("drag1")。

放到何處 - ondragover

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

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

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

event.preventDefault()

進(jìn)行放置 - ondrop

當(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)?/p>

  • 調(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)元素)中

返回頂部
主站蜘蛛池模板: 黄色大片黄色大片 | 伊人黄色网 | 免费一级特黄a | 乱色专区 | 猫咪人成免费网站在线观看 | 欧美一级毛级毛片 | 国产在线视频专区 | 久久91精品综合国产首页 | 精品视频在线观看 | 国产亚洲精品网站 | 国内小情侣一二三区在线视频 | 亚洲h片 | 98香蕉草草视频在线精品看 | 精品一区二区三区在线播放 | 成人久久在线 | 日韩精品免费看 | 一级免费黄色片 | 国产成人精品久久一区二区三区 | 国产亚洲欧美日韩在线观看不卡 | 91精品视频播放 | 亚洲第一视频在线观看 | 一级做a爱久久久久久久 | 久久中文字幕综合婷婷 | 青草免费观看 | 最新欧美精品一区二区三区不卡 | 老司机成人福利视频在线观看免费 | a一级视频 | 中文字幕2022永久在线 | 极品白嫩无套视频在线播放张悠雨 | 亚洲精品日韩一区二区 | 91精品福利老司机在线观看 | 特黄aa级毛片免费视频播放 | 青青青青久久国产片免费精品 | 97色在线视频观看香蕉 | 国产精品国产三级国产专不∫ | 国产精品免费看久久久 | 亚洲精品九色在线网站 | 免费国产视频在线观看 | 麻豆自拍 | 午夜视频免费 成人 | 99久久免费精品国产免费 |