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

首頁 > 編程 > HTML > 正文

如何使用HTML5實現多個元素的拖放功能

2020-03-24 16:04:11
字體:
來源:轉載
供稿:網友
通過使用HTML5的拖放功能我們可以拖放html' target='_blank'>HTML頁面元素。在上一篇文章中,我們介紹了有關于可以拖放單個元素的代碼。在接下來的這篇文章中,我們將來介紹關于允許拖放多個元素的代碼。

HTML5拖放

話不多說,我們直接看示例

示例一:使用UL標記拖放多個元素

代碼如下:

ListDragDrop.html

 !DOCTYPE html  html  head  meta charset= utf-8 /  title /title  link rel= stylesheet href= ListDragDrop.css /  script  function load() {  var delbox = document.getElementById( del  delbox.addEventListener( dragover , onDragOver, false); delbox.addEventListener( drop , onDrop, false);  var elems = document.querySelectorAll( ul#list1 li  for (var i = 0; i elems.length; i++) { el = elems[i]; el.setAttribute( draggable , true  el.addEventListener( dragstart , onDragStart, false);function onDragStart(e) { e.dataTransfer.effectAllowed = copy  e.dataTransfer.setData( text , this.id);function onDragOver(e) { e.preventDefault();function onDrop(e) { if (e.stopPropagation) e.stopPropagation();  var eid = e.dataTransfer.getData( text  var elem = document.getElementById(eid); elem.parentNode.removeChild(elem); /script  /head  body onload= load();  div id= del 刪除 /div  ul id= list1  li id= 1 海豚 /li  li id= 2 鯨魚 /li  li id= 3 企鵝 /li  li id= 4 北極熊 /li  li id= 5 雪狐 /li  /ul  /ul  /body  /html 

ListDragDrop.css

#del{ width:120px;  height:60px;  border: solid 2px #ff6a00;ul#list1 li { display: block;  width: 150px;  border: 1px solid #808080; }

說明:

加載頁面時執行加載功能。load函數中的以下代碼將dragover和drop事件分配給[Delete]的div。當元素被拖動到Delete框時,會調用onDragOver函數,當它被刪除時,會調用onDrop函數。

var delbox = document.getElementById( del  delbox.addEventListener( dragover , onDragOver, false); delbox.addEventListener( drop , onDrop, false);

調用querySelectorAll方法以獲取ul標記中的li元素。for循環反復處理中獲取的元素數組,并將每個元素的“draggable”屬性設置為true。此過程將其設置為可拖動對象。它還分配了一個dragstart事件。

var elems = document.querySelectorAll( ul#list1 li for (var i = 0; i elems.length; i++) { el = elems[i]; el.setAttribute( draggable , true  el.addEventListener( dragstart , onDragStart, false); }

拖動列表項時,將調用以下onDragStart函數。調用dataTransfer對象的setData方法以在dataTransfer對象中存儲元素的ID。

function onDragStart(e) { e.dataTransfer.effectAllowed = copy  e.dataTransfer.setData( text , this.id); }

當在拖放區域中拖動列表中的項目時,將調用以下onDragOver函數。由于DragOver沒有特別的處理,因此它調用PreventDefault方法來取消事件。

function onDragOver(e) { e.preventDefault(); }

如果列表的項目在拖放區域內被刪除,則可以調用onDrop函數。調用stopPropagation方法取消事件的處理。然后,我們從dataTransfer對象中獲取ID。通過取得ID,您可以獲得丟棄區域中丟棄的元素。調用getElementById方法并從ID中獲取LI標記的對象。通過使用獲取的LI對象的paerntNode屬性訪問父節點,調用removeChild方法,刪除被丟棄的列表的項目。

function onDrop(e) { if (e.stopPropagation) e.stopPropagation(); var eid = e.dataTransfer.getData( text var elem = document.getElementById(eid); elem.parentNode.removeChild(elem); }

運行結果:

使用Web瀏覽器顯示上述HTML文件。將顯示如下所示的效果。

HTML拖放

可以拖動頁面底部列表中的項目。比如拖動“企鵝”這一項,將其拖動到刪除區域,然后下面列表項中就沒有第三項“企鵝”了,具體效果如下圖所示

微信截圖_20181201144455.png

HTML5拖放

拖動其他項都是一樣的效果,五項都可以刪除。

以上就是如何使用HTML5實現多個元素的拖放功能的詳細內容,其它編程語言

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 区。| 广州市| 钟祥市| 临沭县| 深圳市| 洛宁县| 林芝县| 彩票| 利津县| 嘉义县| 明溪县| 金沙县| 吉木萨尔县| 乐平市| 鄂伦春自治旗| 盐边县| 商洛市| 平江县| 广南县| 江华| 浮山县| 平凉市| 囊谦县| 古交市| 繁昌县| 阜新| 曲周县| 双城市| 太保市| 班玛县| 芦山县| 沭阳县| 江陵县| 射阳县| 乡城县| 诸城市| 石台县| 阿鲁科尔沁旗| 邢台县| 淮南市| 霞浦县|