ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS基础-拖拽-尚硅谷-P118-120

2022-01-28 19:58:15  阅读:191  来源: 互联网

标签:function obj P118 拖拽 JS 120 var document event


视频链接
视频

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		#box1{
			width: 100px;
			height: 100px;
			background-color: #6495ED;
			position: absolute;
		}
		#box2{
			width: 100px;
			height: 100px;
			background-color: #FF0000;
			position: absolute;
			left: 200px;
			top: 200px;
		}
		
			
		</style>
		<script type="text/javascript">
		window.onload=function(){
			var box1=document.getElementById("box1");
			var box2=document.getElementById("box2");
			drag(box1);
			drag(box2);
		}
		function drag(obj){
			/**
			 * 拖拽:
			 * 1.当鼠标在被拖拽元素上按下时,开始移动 onm ousedown
			 * 2.当鼠标移动时 被拖拽元素跟着移动 onm ousemove
			 * 3.当鼠标松开时,被拖拽元素固定在当前位置 onm ouseup
			 *  
			 */
			
			obj.onmousedown=function(event){
				//这个方法只有IE支持 Chrome会报错 Firefox不报错
				obj.setCapture&&obj.setCapture();
				//div的偏移量 鼠标.clientX-元素.offsetLeft
				// 鼠标.clientY-元素.offsetTop
				event=event||window.event;
				var ol=event.clientX-obj.offsetLeft;
				var ot=event.clientY-obj.offsetTop;
				
				//为document绑定onmousemove
				document.onmousemove=function(event){	
					event=event||window.event;
					var left=event.clientX-ol;
					var top=event.clientY-ot;
					//修改obj的位置
					obj.style.left=left+"px";
					obj.style.top=top+"px";
				};
				document.onmouseup=function(){
					document.onmousemove=null;
					document.onmouseup=null;
					// if(obj.releaseCapture){
					// 	obj.releaseCapture();
					// }	
					obj.releaseCapture&&obj.releaseCapture();
			   }
			   /**
				* 当我们拖拽浏览器内容时 浏览器会自动搜索
				* 此时导致拖拽功能的异常
				* 这是浏览器提供的默认行为
				* 如果不希望 return false
				* 但是IE8这个不起作用
				*/
			   return false;
			};
		}
		</script>
	</head>
	<body>
		<div id="box1"></div>
		<div id="box2"></div>
	</body>
</html>

标签:function,obj,P118,拖拽,JS,120,var,document,event
来源: https://blog.csdn.net/qq_43624193/article/details/122735802

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有