ondragstart -拖放

draggable 属性规定元素是否可拖动。该属性有3个值:

  • true:规定元素可以拖动
  • fase:规定元素不可拖动
  • auto:使用浏览器的默认特性

设置元素为可拖放
        首先,为了使元素可拖动,draggable:值为true时表示元素可拖动,默认为false,表示不能拖动

<img draggable="true"> 

在拖动目标上触发事件 (源元素):

  • ondragstart - 用户开始拖动元素时触发
  • ondrag - 元素正在拖动时触发
  • ondragend - 用户完成元素拖动后触发

拖动——ondragstart
         ondragstart属性调用了一个函数,drag(ev),它规定了被拖动的数据。

        Text是一个DOMString,表示要添加到drag object的拖动数据的类型。值是可拖动元素的id ('drag1")。

// 拖动开始

function drag(ev){

            // DataTransfer 数据传输

            ev.dataTransfer.setData("Text",ev.target.id);

        }

        放到何处——ondragoverl
        ondragover事件规定在何处放置被拖动的数据。
        默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式.
        这要通过调用ondragover事件的event.preventDefault()方法:

// 拖动结束

function allowDrag(ev){

        // 允许其他元素拖放到此处

        ev.preventDefault();

}


应用效果:

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>元素拖放</title>
    <style type="text/css">
        #result {
            width: 200px;
            height: 250px;
            border: 2px solid red;
            padding: 10px;
        }
    </style>
</head>
<!-- set设置
get获取 -->
<body>
    <p>请将下面的图片拖入到框中</p>
     <!-- 拖放的位置 -->
    <div id="result" ondragover="allowDrag(event)" ondrop="drop(event)">
    </div>
    <img id="a" src="img/flower.jpg" alt="" draggable="true" ondragstart="drag(event)">
    <script type="text/javascript">
        // 用于拖动的函数
        // 拖动开始
        function drag(ev){
            // DataTransfer 数据传输
            ev.dataTransfer.setData("Text",ev.target.id);
        }
        // 拖动过程
        function drop(ev){
            // 允许其他元素拖放到此处
            ev.preventDefault();
            // 获取要拖放元素的id
            var id=ev.dataTransfer.getData("Text");
            // 将一个标签添加到另外一个标签中,可以使用appendChild();
            ev.target.appendChild(document.getElementById(id));
        }
        // 拖动结束
        function allowDrag(ev){
            // 允许其他元素拖放到此处
            ev.preventDefault();
        }
    </script>
</body>

</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值