Heim > Web-Frontend > H5-Tutorial > Hauptteil

Anwendungsbeispiele für HTML5 Drag & Drop (Code)

不言
Freigeben: 2019-04-11 13:26:55
nach vorne
3095 Leute haben es durchsucht

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>
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage