javscript 简单拖拽(drag)拖放事件、dataTransfer详解,垃圾桶效果

在这里插入图片描述

例子

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>HTML5拖放API之回收站效果</title>
		<style type="text/css">
			#container {
				border: 1px solid;
				width: 300px;
				height: 250px;
				float: left;
			}

			/* 文件夹样式 */
			#container div {
				background: url(image/folder.png) no-repeat;
				text-align: center;
				float: left;
				margin: 20px;

				width: 100px;
				height: 80px;
				line-height: 80px;
			}

			/*设置回收站样式*/
			div#recycle {
				width: 200px;
				height: 200px;
				float: left;
				text-align: center;
				background: url(image/recycle.jpg) no-repeat;
				margin: 30px;
			}
		</style>

	</head>
	<body>
		<h3>HTML5拖放API之回收站效果</h3>
		<hr />
		<!--文件展示区域-->
		<div id="container">
			<div draggable="true" id="file1">
				文件1
			</div>
			<div draggable="true" id="file2">
				文件2
			</div>
			<div draggable="true" id="file3">
				文件3
			</div>
			<div draggable="true" id="file4">
				文件4
			</div>
		</div>
		<!--回收站区域-->
		<div id="recycle"></div>
		<script type="text/javascript">
			var oDiv = document.getElementById("container").getElementsByTagName("div");
			var recycle = document.getElementById("recycle");
						for (var i = 0; i < oDiv.length; i++) {
							oDiv[i].ondragstart = function(ev) {
								//设置传递的内容为被拖拽元素的id名称,数据类型为纯文本类型  
								ev.dataTransfer.setData("text", ev.target.id);
								console.log("开始拖动")
							}
						}
						recycle.ondragover = function(ev) {
							//解禁当前元素为可放置被拖拽元素的区域
							ev.preventDefault();
							console.log("这是放到可拖拽区域生出的文字");
						}
						recycle.ondrop = function(ev) {
							//解禁当前元素为可放置被拖拽元素的区域
							ev.preventDefault();
							//获取当前被放置的元素id名称
							var id = ev.dataTransfer.getData("text");
							//根据id名称获取元素对象
							var folder = document.getElementById(id);
							//获取文件夹区域并删除该元素对象
							document.getElementById("container").removeChild(folder);
							// oDiv.parentNode.removeChild(oDiv); //删除指定节点,一般通过id选择删除,担当要删除的不是一个时就尽量不要这个
						}

		</script>

	</body>
</html>
<!-- 
 1.将元素设置为可拖动draggable="true",设置id
 2.在被拖拽元素上:开始拖动 document.ondragstart,只有设置了draggable="true"的才可以拖动,切拖动才有反应
	2.1 //设置传递的内容为被拖拽元素的id名称,数据类型为纯文本类型  
3.拖拽区域,ondragover,ondrop解禁当前元素为可放置被拖拽元素的区域 
 -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值