H5 元素拖放
今天分享一個元素拖放的案例,注意:這個是H5新增的;
先放圖一張:
程式碼:(一些API和細節都在程式碼註釋裡了)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width:400px;
height:100px;
background: blue;
margin-bottom:10px;
display: flex;
}
p{
width:200px;
height:50px;
margin:auto;
display: flex;
background: #fff;
align-items:center;
justify-content:center;
}
</style>
</head>
<body>
<div>
<p draggable="true">可以拖動的文字</p>
</div>
<div></div>
<div></div>
<div></div>
<script>
//首先實現拖動要用到的方法有 dragenter dragover dragleave drop
var p = document.querySelector("p");
/*開始拖動的時觸發。 只觸發一次 在被拖動的元素上觸發*/
p.addEventListener("dragstart",function () {
// console.log("p","dragstart..開始拖動")
});
/* 拖動的過程中觸發。 只要元素在拖動,會一直重複觸發 在被拖動的元素上觸發*/
p.addEventListener("drag",function () {
// console.log("p","drag...")
});
/*進入另外一個元素的區域時觸發. 是在目標元素上觸發*/
document.addEventListener("dragenter",function (e) {
// console.log(e.target,"dragenter...進入目標區域");
var target = e.target;
if(target.tagName.toLocaleLowerCase() == "div" ){
target.style.backgroundColor = "red";
}
});
/* 在潛在目標區域的上方的時候會重複觸發 */
document.addEventListener("dragover",function (e) {
e.preventDefault();
// console.log(e.target,"dragover...進入目標區域")
});
/*從潛在目標元素上方離開的時候觸發*/
document.addEventListener("dragleave",function (e) {
// console.log(e.target,"dragleave...離開目標區域")
if(e.target.tagName.toLocaleLowerCase() == "div" ){
e.target.style.backgroundColor = "blue";
}
});
/*在鬆開滑鼠拖放結束的時候觸發*/
p.addEventListener("dragend",function () {
// console.log("p","drag...end")
});
/*釋放拖動元素的時候觸發。 這個事件是在dropend事件觸發前觸發。*/
document.addEventListener("drop",function (e) {
// console.log(e.target,"drop...放下")
if(e.target.tagName.toLocaleLowerCase() == "div"){
p.parentNode.removeChild(p);
e.target.appendChild(p);
e.target.style.backgroundColor = "blue";
}
})
</script>
</body>
</html>
相關文章
- H5拖放基礎和實戰H5
- H5新增標籤元素H5
- H5 語義化元素H5
- H5拖放非同步檔案上傳之二——上傳進度監聽H5非同步
- HTML 5 拖放HTML
- HTML5 進階系列:拖放 API 實現拖放排序HTMLAPI排序
- HTML5 拖放HTML
- HTML5拖放HTML
- chrome下的拖放事件Chrome事件
- tlistview使用--拖放操作 (轉)View
- HTML5 拖放、交換位置HTML
- Html5的拖放功能HTML
- javascript的拖放入門(轉)JavaScript
- dnd.js 拖放庫 Drag and DropJS
- 拖放排序外掛Sortable.js排序JS
- 指令碼div實現拖放功能指令碼
- HTML5 拖放(Drag和drop)HTML
- HTML5拖放本地資源HTML
- 使用VB實現OLE拖放功能
- 拖放事件(自己的學習筆記)事件筆記
- HTML5 drag & drop 拖拽與拖放HTML
- Yoink for Mac(臨時檔案拖放助手)Mac
- HTML5學習筆記 拖放HTML筆記
- javascript實現拖曳與拖放圖片JavaScript
- vue專案中加入拖放排序功能Vue排序
- Blazor 使用拖放(drag and drop)上傳檔案Blazor
- 「拖放」Mac 的底層能力,也是效率神技Mac
- [譯] 拖放庫中 React 效能的優化React優化
- ALV Grid控制元件拖放功能控制元件
- 自制支援檔案拖放的VCL元件 (轉)元件
- HTML5原生拖拽/拖放 Drag & Drop 詳解HTML
- Jetpack DragAndDrop 庫——拖放操作如此輕鬆!Jetpack
- 30 個最棒的 jQuery 的拖放外掛jQuery
- Appium自動化測試之微信h5元素識別和程式碼實戰APPH5
- 玩轉iOS開發:iOS 11 新特性《高階拖放》iOS
- 玩轉iOS開發:iOS 11 新特性《UICollectionView的拖放》iOSUIView
- 實現檔案拖放的一種簡潔方法 (轉)
- Vue結合HTML5拖放API 實現目錄拖拽~VueHTMLAPI