html5拖放小实例

本文深入解析HTML5拖放API的工作原理,包括ondragstart、ondragover、ondrop等关键事件,通过一个示例展示如何实现元素在页面间的拖拽功能。文章详细介绍了拖放操作的四个必要步骤,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   参照物:拖放的元素 和 目标点
                
                API事件:
                    ondragstart:开始拖放元素触发的事件 ,   对象:拖放的元素
                    ondrag:拖放过程中触发的事件,   对象:拖放的元素


                    ondragenter:有拖放的元素进入目标元素时触发的事件,   对象:目标元素
                    ondragover:有拖放的元素在目标元素内移动触发的事件:对象:目标元素
                    ondragleave:有拖放的元素离开目标元素触发的事件,  对象:目标元素
                    ondrop:有拖放的元素在本元素松开的时候触发的事件  对象:目标元素

                    ondragend:拖放元素结束触发的事件      对象:拖放的元素

/完成一个拖动过程必须有的4个步骤

draggable="true", ondragstart, ondragover ,ondrop

以下有个小实例:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #box ,#box1{
                width: 200px;
                height: 100px;
                border: 1px solid;
                margin-top:10px ;
            }
        </style>
    </head>    <body>
        <img src="http://www.w3school.com.cn/i/eg_dragdrop_w3school.gif" id="mg" draggable="true" ondragstart="drag(event)" />
        <div id="box" ondrop="drop(event)" ondragover="allowDrop(event)" ondragenter="enter(event)" ondragleave="leave(event)"></div>
        <div id="box1" ondrop="drop(event)" ondragover="allowDrop(event)" ondragenter="enter1(event)" ondragleave="leave1(event)"></div>
    
    </body>
    <script type="text/javascript">
       
        
        function drag(ev) {
            ev.dataTransfer.setData("Text", ev.target.id);
        }

        function allowDrop(e) {
            e.preventDefault();
        }

        function drop(ev) {
            //            ev.preventDefault();
            var data = ev.dataTransfer.getData("Text");
            ev.target.appendChild(document.getElementById(data));

        }
       


        function enter(ev) {
            var box = document.getElementById('box');
            box.style.border = '1px solid red';
        }
        function enter1(ev) {
            var box1 = document.getElementById('box1');
            box1.style.border = '1px solid green';
        }
        function leave(e){
            var box = document.getElementById('box');
            box.style.border = '1px solid';
        }
        function leave1(e){
            var box1 = document.getElementById('box1');
            box1.style.border = '1px solid';
        }
    </script>

</html>

 图片在两个div框框之间可以来回拖拽

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值