• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

html5的drag和drop的用法展示代码

武飞扬头像
PHP中文网
帮助43

5分钟弄清楚html5的drag and 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('==========dragstart 开始被拖拽==========一次拖动只执行一次');
            // 保存拖动元素的引用(ref.)
            dragged = event.target;
            // 使其半透明
            event.target.style.opacity = .5;
        }, false);

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

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

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

        }, false);

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

        }, false);

        document.addEventListener("drop", function (event) {
            console.log('==========drop 放下元素==========一次拖动只执行一次,在dragenter前触发');
            // 阻止默认动作(如打开一些元素的链接)
            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('==========dragend 结束拖拽==========一次拖动只执行一次');
            // 重置透明度
            event.target.style.opacity = "";
        }, false);

    </script>
</head>

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

</html>

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfebck
系列文章
更多 icon
同类精品
更多 icon
继续加载