【ife】任务三十七:UI组件之浮出层

window.onload = function() {
	document.getElementsByTagName("button")[0].onclick = function() {
		document.getElementById("box").style.left = "50%";
		document.getElementById("box").style.top = "50%";
		document.getElementById("box").style.width = "400px";
		document.getElementById("box").style.height = "300px";
		document.getElementById("box").style.display = "block";
		document.getElementById("cover").style.display = "block";
		document.getElementsByTagName("body")[0].style.background = "grey";
		document.getElementsByTagName("button")[0].disabled = true;
	}
	document.getElementById("close").onclick = function() {
		document.getElementById("box").style.display = "none";
		document.getElementById("cover").style.display = "none";
		document.getElementsByTagName("body")[0].style.background = "white";
		document.getElementsByTagName("button")[0].disabled = false;
	}
	document.getElementById("cover").onclick = function() { 
		document.getElementById("box").style.display = "none";
		document.getElementById("cover").style.display = "none";
		document.getElementsByTagName("body")[0].style.background = "white";
		document.getElementsByTagName("button")[0].disabled = false;
	}
	var box = document.getElementById("box");
	var head = document.getElementById("head");
	head.onmousedown =  function(event) { 
		var disX = event.clientX - box.offsetLeft;
		var disY = event.clientY - box.offsetTop;
		document.onmousemove = function(event) {
			offX = event.clientX - disX;
			offY = event.clientY - disY;	
			box.style.left = offX + 200 + 'px';
			box.style.top = offY + 150 + 'px';
		}
		document.onmouseup = function() {
			document.onmousemove = null;
		}
	}
	var top = document.getElementById("top");
	var right = document.getElementById("right");
	var bottom = document.getElementById("bottom");
	var left = document.getElementById("left");
	var drag = document.getElementById("drag");	
	var min = 30; 
	top.onmousedown =  function(event) { 
		stopBubble(event);
		var e = event || window.event;
		var boxY = box.offsetTop - e.clientY;
		var rightY = bottom.offsetTop + e.clientY;
		document.onmousemove = function(event) {
			var e = event || window.event;
			var offY = rightY - e.clientY;	
			var height = offY + drag.offsetHeight;
			if (height < min)
				height = min;
			box.style.height = height + "px";
			if (height > min)
				box.style.top = boxY + e.clientY + 150 + "px";
		}
		document.onmouseup = function() { 
			document.onmousemove = null;
		}
	}
	right.onmousedown =  function(event) { 
		stopBubble(event);
		var e = event || window.event;
		var disX = e.clientX - right.offsetLeft;
		document.onmousemove = function(event) {
			var e = event || window.event;
			var offX = e.clientX - disX;	
			var width = offX + drag.offsetWidth;
			if (width < min)
				width = min;
			box.style.width = width + "px";
		}
		document.onmouseup = function() {
			document.onmousemove = null;
		}
	}
	bottom.onmousedown =  function(event) { 
		stopBubble(event);
		var e = event || window.event;
		var disY = e.clientY - bottom.offsetTop;
		document.onmousemove = function(event) {
			var e = event || window.event;
			var offY = e.clientY - disY;	
			var height = offY + drag.offsetHeight;
			if (height < min)
				height = min;
			box.style.height = height + "px";
		}
		document.onmouseup = function() {
			document.onmousemove = null;
		}
	}
	left.onmousedown =  function(event) { 
		stopBubble(event);
		var e = event || window.event;
		var boxX = box.offsetLeft - e.clientX;
		var rightX = right.offsetLeft + e.clientX;
		document.onmousemove = function(event) {
			var e = event || window.event;
			var offX = rightX - e.clientX;	
			var width = offX + drag.offsetWidth;
			if (width < min)
				width = min;
			box.style.width = width + "px";
			if (width > min)
				box.style.left = boxX + e.clientX + 200 + "px"; 
		}
		document.onmouseup = function() { 
			document.onmousemove = null;
		}
	}
	function stopBubble(e){ 
	    if(e && e.stopPropagation)  
	        e.stopPropagation();  
	    else  
	        window.event.cancelBubble = true; 
	}  
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值