HTML5 drag拖放过程详析

1,,,首先你要确定拖动元素:即你要让他能够拖动

 

设置   draggable=“true”;

 

2,,,你要知道你要拖动什么:这时候ondragstart要上场了,用它来设置要拖动的东西(属性)

 

οndragstart=“function(event){

 

        ev.dataTransfer.setData(“Text”,ev.target.id);

 

}”dataTransfer.setData()这就像一个媒介来让你们认识不然怎么有后来的发展是不是

 

3,,,放在什么地方哪?他允许你放吗?放了之后那干什么?

 

因为浏览器有自己的模式:元素内不允许放其它元素或数据,所以那我要阻止他

 

 

ondragover“function(event){

     ev.preventDefault();

 

}”

 

 

a;;允许放置后浏览器还有自己的模式(就是考验你,对不对我足够好):放置的元素以链接的形式显示。

 

b;;对于被添加的元素要知道是谁要添加,这就需要媒介来告诉了,要不然谁知道你是谁;然后就见面了

c;;然后就见面了,对上眼了,所以就在一起了,

 

 

ondrop"function (event){

 

    ev.preventDefault();

 

   var data=dataTransfer.getData(“Text”);//不知道这个方法请点击点击打开链接

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

 

}"

 

下面是demo:

<html>
<meta charset="utf-8">
    <head><title>...</title>
        <style>
       #p1{
           font-size: 20px;
           color: red;
       }
       #div1{
           width: 200px;
           height: 200px;
           border: 2px solid yellow;
       }
        </style>
        <script type="text/javascript">
        function drag(ev){
            ev.dataTransfer.setData("Text",ev.target.id);

        }
        function allow(ev){
            ev.preventDefault();//因为默认的是不允许放置其它元素或数据所以要阻止其默认情况
        }
       function drop(ev){
        ev.preventDefault();//因为放置的元素浏览器默认是以链接的形式打开所以要阻止默认方式
        var data=ev.dataTransfer.getData("Text");//通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
         ev.target.appendChild(document.getElementById(data));
       }
        </script>
       
    </head>
<!--测试拖放
-->
<body>
  <div id="div1" ondrop="drop(event)" ondragover="allow(event)"></div>
  <p>请把下面的文字拖放到方框中</p>
   <p id="p1" ondragstart="drag(event)" draggable="true">我爱你  哈哈</p>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值