拖拽九宫格案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{padding: 0;margin: 0;}
			#box{position:relative;margin: 100px;}
			#box div{
				position: absolute;width: 100px;height: 100px;border-radius: 10px;text-align: center;line-height: 100px;font-size: 32px;
			}
		</style>
	</head>
	<body>
		<div id="box">
			
		</div>
		<script type="text/javascript">
			var Box = document.getElementById("box");
			var ml=mh=10;	
			for(var i=0;i<3;i++){
				for(var j=0;j<3;j++){
					var Div =document.createElement("div");
					Box.appendChild(Div);					
					Div.style.left=j*(Div.offsetWidth+mh)+"px";
					Div.style.top=i*(Div.offsetHeight+ml)+"px";
					Div.style.background="rgb("+
						Math.floor(Math.random()*255)+","+Math.floor(Math.random()*255)+","+Math.floor(Math.random()*255)+")";
		      }
				var Odiv =Box.children;
			var arr=["李","源","哈","获","得","满","分","恭","喜"];
				for(var k=0;k<Odiv.length;k++){
					Odiv[k].innerHTML=arr[k];
			     }
			}
			for(var n=0;n<Odiv.length;n++){
				Odiv[n].onmousedown =function(e){
					var evt =e||event;					
					var x =evt.clientX-this.offsetLeft-Box.offsetLeft;
					var y =evt.clientY-this.offsetTop-Box.offsetTop;
					var curNode = this;
					var cloneNode =curNode.cloneNode();
					Box.replaceChild(cloneNode,curNode);
					curNode.style.zIndex=1;
					Box.appendChild(curNode);
					document.onmousemove=function(e){
						var evt =e ||event;
						curNode.style.left=evt.clientX-x-Box.offsetLeft+"px";
						curNode.style.top=evt.clientY-y-Box.offsetTop+"px";
						return false;
						
					}
				
				document.onmouseup=function(){
					document.onmousemove=null;
				
			    	 var arr1=[];
					 var arr2=[];
					 for(var i=0;i<Odiv.length-1;i++){
					 	var dx=curNode.offsetLeft-Odiv[i].offsetLeft;
					 	var dy=curNode.offsetTop-Odiv[i].offsetTop;
					 	var dz=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));
					 	arr1.push(dz);
					 	arr2.push(dz);
					 
					 }
					 arr1.sort(function(a,b){
					 	return a-b;
					 })
				
					 var minval =arr1[0];
					 var minindex =arr2.indexOf(minval);
					  
					 curNode.style.left=Odiv[minindex].style.left;
					 curNode.style.top=Odiv[minindex].style.top;
					 Odiv[minindex].style.left=cloneNode.style.left;
					 Odiv[minindex].style.top=cloneNode.style.top;
					 
					 Box.removeChild(cloneNode);
					 document.onmouseup=null;
				}
				
			}
			
		}	
			
			
			
		</script>
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值