js拖动事件

本文通过HTML和JavaScript演示了如何实现元素的拖动事件。在两个矩形框中,可以将一个带有`draggable="true"`属性的p元素进行拖动,并在拖动过程中更新状态。拖放操作涉及`ondragstart`, `ondrag`, `ondragover`, `ondrop`等事件,以及`dataTransfer`对象用于传递拖动数据。当拖动元素放置到目标区域时,元素会被添加到目标区域中。" 78376435,7013582,Greenplum数据库中的FETCH操作指南,"['数据库', 'SQL', 'Greenplum', '游标操作']

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

                         


 

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>拖动事件</title>

         <style>

                  .droptarget {

                          float:left;

                          width:100px;

                          height:35px;

                          margin:15px;

                          padding:10px;

                          border:1px solid #aaaaaa;

                  }

    </style>

</head>

<body>

         <p>在两个矩形框中来回拖动 p 元素:</p>

    <divclass="droptarget" οndragοver="allowDrag(event)"οndrοp="drop(event)">

        <p id="dragtarget"draggable="true" οndragstart="dragStart(event)"οndrag="dragging()">拖动我!</p>

    </div>

    <divclass="droptarget" οndragοver="allowDrag(event)"οndrοp="drop(event)"></div>

    <pstyle="clear:both;"><strong>注意:</strong>Internet Explorer 8 及更早 IE 版本或 Safari 5.1 及更早版本的浏览器不支持 drag 事件。</p>

    <pid="demo"></p>

    <script>

        //开始拖动p标签被拖拽的元素必须设置draggable="true"

        functiondragStart(event){

            var event =event||window.event

            //在进行拖放操作的时候,dataTransfer对象可以用来保存被拖动的数据。它可以保存一项或多项数据、一种或多数数据类型。通俗一点讲,就是可以通过它来传输被拖动的数据,以便在拖拽结束的时候,对数据进行其他的操作。

           event.dataTransfer.setData("text",event.target.id);

        }

        //拖拽过程中

        function dragging(){

           document.getElementById("demo").innerHTML = "p元素正在被拖拽!";

        }

        //拖动元素在放置目标上

        functionallowDrag(event){

            //阻止默认事件

           event.preventDefault();

        }

        //拖动元素放在目标区域时

        function drop(event){

           console.log(event);

            //获取被拖动元素id

            var data =event.dataTransfer.getData("text");

            //在目标区域添加元素

           event.target.appendChild(document.getElementById(data));

           document.getElementById("demo").innerHTML = "p元素已被拖拽!";

        }

    </script>

</body>

</html>


 

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值