Html5实现拖动效果

<!DOCTYPE html>
<html lang="en">
<head>
<style>
	#rubbishBox
	{
		float:left;
		height:300px;
		width:400px;
		background-color: grey;	
		-webkit-writing-mode: lr-tb;
		vertical-align: middle;
	}
	#dragBox
	{
		width: 504px;
		margin-left: 500px;
	}	
	#dragBox div
	{
		width:500px;
		height: 30px;
		border:2px dashed grey;	
		margin-bottom: 10px;	
	}
	#dragBox div:hover
	{
		background-color: silver;
	}	
</style>
</head>
<body>
<div id="rubbishBox">垃圾箱<br/></div>
<div id="dragBox">
	<div class="drag">a把我拖进垃圾箱吧</div>
	<div class="drag">b把我拖进垃圾箱吧</div>
	<div class="drag">c把我拖进垃圾箱吧</div>
	<div class="drag">d把我拖进垃圾箱吧</div>
	<div class="drag">e把我拖进垃圾箱吧</div>
</div>
<script type="text/javascript">
	document.ondragover = function(ev) { ev.preventDefault(); };
	var dragChild = null;
	var length = document.getElementById("dragBox").childNodes.length;
	var nodes = document.getElementById("dragBox").childNodes;
	for(var i=0;i<length;i++)
	{
		if(nodes[i].nodeType==1)
		{
			if(nodes[i].getAttribute("class")=="drag")
			{
				nodes[i].setAttribute("draggable","true");
				nodes[i].ondragstart = function(ev)
				{
					var dt = ev.dataTransfer;
					dt.effectAllowed = "move";
					dt.setData("text/plain",this.innerText);
					dragChild = this;
				};
				nodes[i].ondragend = function(ev)
				{
					dragChild = null;
				};
			}	
		}						
	}

	var rubbishBox = document.getElementById("rubbishBox");
	rubbishBox.ondragover = function(ev){
		ev.dataTransfer.dropEffect = "move ";
		ev.preventDefault();
	};
	rubbishBox.ondragenter = function(){
		this.style.color = "white";
	};
	rubbishBox.ondrop = function(ev)
	{
		var dt = ev.dataTransfer;
		this.appendChild(document.createTextNode(dt.getData("text/plain")));
		this.appendChild(document.createElement("br"));
		document.getElementById("dragBox").removeChild(dragChild);
	}
</script>
</body>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值