色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 拖拽交換

林雅南1年前7瀏覽0評論
JavaScript拖拽交換:實現排序交換功能 隨著網頁UI設計的復雜化,交互性的需求愈來愈高,特別是對于網頁中的數據交換或排序操作,拖拽交換的方法常被采用。JavaScript拖拽交換就是其中一個應用最廣泛的功能。下面我們來學習一下如何實現JavaScript拖拽交換的功能。 以實現列表項拖放為例,首先需要用HTML創建一個含有列表項的界面: ```htmlJavaScript拖拽交換
  • A
  • B
  • C
  • D
  • E
``` 在其中,我們設置了一個`ul`標簽,并使用`li`標簽創建列表項。通過在`li`標簽上添加`draggable`屬性,使得該標簽可以被拖放。 接下來,我們需要編寫JavaScript代碼實現列表項的拖放和交換操作: ```javascript var items = document.querySelectorAll("#items li"); var last = null; for (var i = 0; i< items.length; i++) { items[i].addEventListener("dragstart", function (e) { e.dataTransfer.setData("text", e.target.textContent); last = this; }); items[i].addEventListener("dragover", function (e) { e.preventDefault(); if (this != last) { this.classList.add("dragover"); } }); items[i].addEventListener("dragleave", function (e) { this.classList.remove("dragover"); }); items[i].addEventListener("drop", function (e) { e.preventDefault(); if (this != last) { var temp = this.textContent; this.textContent = e.dataTransfer.getData("text"); last.textContent = temp; this.classList.remove("dragover"); } }); } ``` 在這段代碼中,我們首先獲取了所有的`li`標簽,然后對每個`li`標簽添加了`dragstart`,`dragover`,`dragleave`和`drop`事件。 `dragstart`事件發生在被拖動的`li`元素上,在該事件中,我們通過`e.dataTransfer.setData()`方法將被拖動的數據設置為要拖放的文本。同時,使用`last`將該元素記錄下來。 `dragover`事件發生在被拖放的目標元素上,在該事件中,我們使用`e.preventDefault()`防止瀏覽器默認的處理行為。當鼠標移動到一個新的元素上時,我們將其樣式改為`.dragover`,表示可以放置在該元素之上。 `dragleave`事件發生在一個`li`元素上,當鼠標離開該元素時,該元素的樣式重新變為原來的樣式。 最后,當鼠標釋放并放置到另一個`li`元素上時,`drop`事件會觸發。在該事件中,我們獲取到剛才拖放的元素和當前鼠標所在的元素,然后交換它們之間的文本內容。同時,將目標元素的`.dragover`樣式移除。 至此,我們就通過JavaScript代碼實現了列表項的拖放和交換操作。這種方法可用于各種類型的網站排序操作,特別是適用于數據管理或圖表交互等領域中的應用。