首頁  >  文章  >  web前端  >  html5的drag和drop的用法範例(程式碼)

html5的drag和drop的用法範例(程式碼)

不言
不言轉載
2019-04-11 13:26:553092瀏覽

這篇文章帶給大家的內容是關於html5的drag和drop的用法範例(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

5分鐘弄清楚html5的drag and drop,及其他監聽事件和執行的順序。

範例如下:

html5的drag和drop的用法範例(程式碼)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>5分钟drag and drop简明示例</title>
    <style>
        #draggable {
            width: 200px;
            height: 20px;
            text-align: center;
            background: white;
        }

        .dropzone {
            width: 200px;
            height: 20px;
            background: blueviolet;
            margin-bottom: 10px;
            padding: 10px;
        }
    </style>
    <script>
        var dragged;

        document.addEventListener("dragstart", function (event) {
            console.log(&#39;==========dragstart 开始被拖拽==========一次拖动只执行一次&#39;);
            // 保存拖动元素的引用(ref.)
            dragged = event.target;
            // 使其半透明
            event.target.style.opacity = .5;
        }, false);

        /* 拖动目标元素时触发drag事件 */
        document.addEventListener("drag", function (event) {
            // console.log(&#39;==========drag==========拖拽时会一直监听,直到放下元素&#39;);
        }, false);

        /* 放置目标元素时触发事件 */
        document.addEventListener("dragover", function (event) {
            // console.log(&#39;==========dragover==========拖拽时会一直监听,直到放下元素&#39;);
            // 阻止默认动作以启用drop
            event.preventDefault();
        }, false);

        document.addEventListener("dragenter", function (event) {
            console.log(&#39;==========dragenter 拖曳元素 进入目标元素==========对应着dragleave&#39;);
            // 当可拖动的元素进入可放置的目标时高亮目标节点
            if (event.target.className == "dropzone") {
                event.target.style.background = "purple";
            }

        }, false);

        document.addEventListener("dragleave", function (event) {
            console.log(&#39;==========dragleave 拖曳元素 离开目标元素==========对应着dragenter&#39;);
            // 当拖动元素离开可放置目标节点,重置其背景
            if (event.target.className == "dropzone") {
                event.target.style.background = "";
            }

        }, false);

        document.addEventListener("drop", function (event) {
            console.log(&#39;==========drop 放下元素==========一次拖动只执行一次,在dragenter前触发&#39;);
            // 阻止默认动作(如打开一些元素的链接)
            event.preventDefault();
            // 将拖动的元素到所选择的放置目标节点中
            if (event.target.className == "dropzone") {
                event.target.style.background = "";
                dragged.parentNode.removeChild(dragged);
                event.target.appendChild(dragged);
            }

        }, false);

        document.addEventListener("dragend", function (event) {
            console.log(&#39;==========dragend 结束拖拽==========一次拖动只执行一次&#39;);
            // 重置透明度
            event.target.style.opacity = "";
        }, false);

    </script>
</head>

<body>
    <div>
        <div id="draggable" draggable="true" ondragstart="event.dataTransfer.setData(&#39;text/plain&#39;,null)">
            这是可以拖拽的DIV
        </div>
    </div>
    <div></div>
    <div></div>
    <div></div>
</body>

</html>

 【相關建議:HTML5影片教學

以上是html5的drag和drop的用法範例(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除