html5 拖拽元素

利用html5实现元素的拖拽,让拖动元素在指定的容器中拖动。

注意点:1、被拖元素要设置拖动属性。draggable="true"

    2、容器元素要设置阻止默认事件处理

实现效果图如下:

 

源码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <style>
        *{box-sizing:border-box;padding:5px;}
        .container{
            margin-right:5px;
            border:1px solid black;
            border-radius:5px;
            width:200px;
            height:200px;
            float:left;
        }
        .content{
            color:white;
            font-weight:bold;
            background:black;
            width:100px;
            height:100px;
            clear:both;
            box-shadow:5px 5px 8px rgba(0,0,0,.3);
        }
        .content:hover{opacity:0.8;filter:alpha(opcaity=80);cursor:default;}
    </style>        
</head>        
<body>        
    <div class="container" ondragover="dragover(event)" ondrop="drop(event)">
        <div class="content" id="dragDiv" draggable="true" ondragstart="dragstart(event)" >drag me to other box</div>
    </div>
    <div class="container" ondragover="dragover(event)" ondrop="drop(event)"></div>
    <div class="container" ondragover="dragover(event)" ondrop="drop(event)"></div>
    
    <script>
        /**开始拖动元素后设置数据类型和值**/
        function dragstart(ele){
            ele.dataTransfer.setData("text",ele.target.id);
        }
        /**拖动到容器元素后阻止其默认处理**/
        function dragover(ele){
            ele.preventDefault();
        }
        /**拖动到容器元素后阻止其默认处理,并获取被拖动元素存储的数据,以便将被拖动元素放到容器**/
        function drop(ele){
            ele.preventDefault();
            var dragDivId=ele.dataTransfer.getData("text");
            ele.target.appendChild(document.getElementById(dragDivId));
        }
    </script>

</body>
</html>
原文地址:https://www.cnblogs.com/xmqa/p/8779338.html