JavaScript:页面内拖拽方框

知识点:

  • position:absolute
  • clientX clientY
  • offsetWidth clientWidth
  • onmousedown onmouseup onmousemove 
<!DOCTYPE html>
<html>
<head>
	<title>拖拽</title>
<style type="text/css">
	#div1{ height: 200px; width: 200px; background-color: red; position: absolute; }
</style>
<script type="text/javascript">
window.onload = function(){
	var oDiv = document.getElementById('div1');

	var disX = 0;
	var disY = 0;

	oDiv.onmousedown = function(ev){
		disX = ev.clientX - oDiv.offsetLeft;
		disY = ev.clientY - oDiv.offsetTop;

		document.onmousemove = function(ev){
			var l = ev.clientX - disX;
			var t = ev.clientY - disY;
			if (l<0) {
				l = 0;
			} else if(l>document.documentElement.clientWidth-oDiv.offsetWidth){
				l = document.documentElement.clientWidth-oDiv.offsetWidth;
			}//div块不超出左右两边,document.documentElement.clientWidth是整个document页面可视区的宽度
			if (t<0) {
				t = 0;
			} else if(t>document.documentElement.clientHeight-oDiv.offsetHeight){
				t = document.documentElement.clientHeight-oDiv.offsetHeight;
			}//div块不超出上下两边,document.documentElement.clientWidth是整个document页面可视区的高度
			
			oDiv.style.left = l + 'px';
			oDiv.style.top = t + 'px';
		};

		document.onmouseup = function(){
			document.onmousemove = null;
			document.onmouseup = null;
		};
	};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

 

posted @ 2020-02-17 16:47  昨夜昙花  阅读(10)  评论(0)    收藏  举报