html5 드래그 앤 드롭 사용 예(코드)

不言
풀어 주다: 2019-04-11 13:26:55
앞으로
3064명이 탐색했습니다.

이 글은 HTML5의 드래그 앤 드롭 사용 예(코드)를 제공합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

5분 동안 HTML5의 드래그 앤 드롭은 물론, 기타 모니터링 이벤트 및 실행 순서를 파악합니다.

예제는 다음과 같습니다.

html5 드래그 앤 드롭 사용 예(코드)

<!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 드래그 앤 드롭 사용 예(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!