html5指南--3.创建投放区

html5指南--3.创建投放区
 

我们来看投放区相关的事件:dragenter:当拖拽对象进入投放区时触发;dragover:拖拽对象在投放区内移动时触发;dragleave:拖拽对象没有投放到投放区,离开投放区的时候触发;drop:拖拽对象投放在投放区时触发。

  我们来看一个例子:
 <!DOCTYPE HTML>
<html>
<head>
    <title>Example</title>
    <style>
        #src > *
        {
            float: left;
        }
        #target, #src > img
        {
            border: thin solid black;
            padding: 2px;
            margin: 4px;
        }
        #target
        {
            height: 123px;
            width: 220px;
            text-align: center;
            display: table;
        }
        #target > p
        {
            display: table-cell;
            vertical-align: middle;
        }
        #target > img
        {
            margin: 1px;
        }
        img.dragged
        {
            background-color: lightgrey;
        }
    </style>
</head>
<body>
    <div id="src">
        <img draggable="true" id="car1" src="img/1.jpg" alt="car1" />
        <img draggable="true" id="car2" src="img/2.jpg" alt="car2" />
        <img draggable="true" id="car3" src="img/3.jpg" alt="car3" />
        <div id="target">
            <p id="msg">
                drop here</p>
        </div>
    </div>
    <script>
        var src = document.getElementById("src");
        var target = document.getElementById("target");
        var msg = document.getElementById("msg");

        var draggedID;
        target.ondragenter = handleDrag;
        target.ondragover = handleDrag;
        function handleDrag(e) {
            e.preventDefault();
        }
        target.ondrop = function (e) {
            var newElem = document.getElementById(draggedID).cloneNode(false);
            target.innerHTML = "";
            target.appendChild(newElem);
            e.preventDefault();
        }
        src.ondragstart = function (e) {
            draggedID = e.target.id;
            e.target.classList.add("dragged");
        }
        src.ondragend = function (e) {
            var elems = document.querySelectorAll(".dragged");
            for (var i = 0; i < elems.length; i++) {
                elems[i].classList.remove("dragged");
            }
        }
    </script>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值