拖放API
1、拖动元素
拖放API引入了一些新的事件,其中就有一些事件由拖动的元素触发(源元素),这些事件称之为源元素事件;
拖动属性
-draggable,设置为true时,表示一个元素允许被拖动
拖动源元素事件:
-dragstart:当元素开始被拖动时触发
-drag:元素正在被拖动的过程中
-dragend:拖动结束时触发

2、目标元素事件
由目标元素触发的事件,叫目标元素事件
-dragenter: 拖动过程中,鼠标第一次进入目标元素区域时触发
-dragover:当鼠标拖动到目标元素时触发
-drop:当拖动操作在目标元素区域执行投放时,触发该事件(等同于当鼠标在目标区域内松开时触发)
-dragleave:当鼠标离开目标区域时触发

注意,执行以上事件的函数是,需要阻止默认行为:
var e = window.event || arguments[0];
e.preventDefault();
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #div1{
            width: 83px;
            height: 83px;
            background-image: url(hui.png);
            background-size:83px 83px;
            margin-left: 40px;
        }
        #ul1{
            list-style: none;
        }
        li{
            width: 83px;
            height: 83px;
            background-image: url(files.png);
            background-size:83px 83px;
        }
    </style>
    <script>
        function(){
            var aLi = document.getElementsByTagName("li");
            var oDiv = document.getElementById("div1");

            for(var i=0; i<aLi.length; i++){
                aLi[i].ondragstart = function(evt){
                    var e = evt || event;
                    e.dataTransfer.setData("Text",e.target.id);
                }
            }
            oDiv.ondragover=function(evt){
                var e = evt || event;
                e.preventDefault();
            }
            oDiv.ondrop = function(evt){
                var e = evt || event;
                e.preventDefault();
                var data = e.dataTransfer.getData("Text");
                var aim = document.getElementById(data)
                e.target.appendChild(aim);
                e.target.removeChild(aim);
            }
        }
    </script>
</head>
<body>
    <div id="div1"  draggable="true">

    </div>
    <ul id="ul1">
        <li draggable="true" id="li1">

        </li>
        <li draggable="true" id="li2">

        </li>
        <li draggable="true" id="li3">

        </li>
        <li draggable="true" id="li4">

        </li>
        <li draggable="true" id="li5">

        </li>
        <li draggable="true" id="li6">

        </li>
    </ul>
</body>
</html>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐