Heim  >  Artikel  >  Web-Frontend  >  Anwendungsbeispiele für HTML5 Drag & Drop (Code)

Anwendungsbeispiele für HTML5 Drag & Drop (Code)

不言
不言nach vorne
2019-04-11 13:26:553080Durchsuche

Der Inhalt dieses Artikels befasst sich mit den Anwendungsbeispielen (Code) von HTML5 Drag & Drop. Ich hoffe, dass er für Freunde hilfreich ist.

5 Minuten, um das Drag-and-Drop von HTML5 sowie andere Überwachungsereignisse und die Reihenfolge der Ausführung herauszufinden.

Ein Beispiel ist wie folgt:

Anwendungsbeispiele für HTML5 Drag & Drop (Code)

<!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>

[Verwandte Empfehlungen: HTML5-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonAnwendungsbeispiele für HTML5 Drag & Drop (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen