html5 “拖放”

拖放主要是两个部分组成,drag:拖动,drop:放置!既抓取元素后拖到另一个位置!

要实现拖放首先要把被拖动元素设置为可拖动,既:

draggbile="true"

然后要拖动什么:ondragstart()和setData(),要放到何处:ovdragover(),然后代码将获取的元素进行放置:ondrop();

下面是一个拖动实例,(来回拖放)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>html5 拖动</title>
</head>
<style type="text/css">
.top{width: 700px;height: 160px;border: solid #ccc 1px;margin: 20px 0 0 20px;}
.img1{margin: 20px 0 0 20px;}
</style>
<script type="text/javascript">
/*
*被拖动数据是被拖动元素的ID;
*ondrop():当元素进行放置时发生
*ondragstart():当元素被拖动时发生
*ondragover():规定在何处放置被拖动元素时发生
*/
function allowDrop(ev){
  //设置拖动到何处触发的事件“ondragover”,避免浏览器对元素的默认处理,(浏览器对元素的默认处理是以链接的方式打开)
  ev.preventDefault();
}
function drag(ev){
  //设置被拖动元素触发事件"ondragstart"和"setData"
  ev.dataTransfer.setData("Text",ev.target.id);//通过setData来设置被拖动数据的数据类型和值;"Text":数据类型,值是被拖动元素的id
}
function drop(ev){
  //设置元素被放置时发生的事件
  ev.preventDefault();//避免浏览器对元素的默认处理
  var data=ev.dataTransfer.getData("Text");//通过dataTransfer.getData()来获取被拖动元素的数据,该方法返回在dataTransfer.setData()中设置为相同类型的数据
  ev.target.appendChild(document.getElementById(data));//把被拖动元素追加到目标元素中
}
</script>
<body>
<div class="top" id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
  <img src="images/img.png" id="drag1" ondragstart="drag(event)" class="img1" draggable="true">
</div>
<div class="top" id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</body>
</html>

 

转载于:https://www.cnblogs.com/return-false/p/3326282.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值