JS中使用dataTransfer实现拖动

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
</head>
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <style type="text/css">
        .container{
            width:200px;
            height:200px;
            background-color: lightblue;
        }
        .block{
            width:50px;
            height:50px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="container"></div>
    <div class="block"></div>
    <script type="text/javascript">
        var container=document.querySelector(".container");
        var block=document.querySelector(".block");
        block.setAttribute("draggable","true");

        //通过在目标元素的dragover事件中阻止默认行为,来使得拖动元素可以拖放进目标元素
        container.addEventListener("dragover",function(event){
            event.preventDefault();
        })

        //只有在目标元素的drop事件中可以读取dataTransfer中的数据
        container.addEventListener("drop",function(event){
            var data=event.dataTransfer.getData("text");
            // container.appendChild(document.getElementsByClassName(data)[0]);
        })

        //只有在拖动元素的dragstart事件中可以向dataTransfer中传递数据
        block.addEventListener("dragstart",function(event){
            event.dataTransfer.setData("text",event.target.getAttribute("class"));
        })
    </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容