JS_基础_拖拽

js_基础_拖拽

<!DOCHTML HTML>
<html>
   <head>
   	   <meta charset="utf-8">
   	   <title>拖拽</title>
   	   <style type="text/css">
   	   	  #box1{
   	   	  	width: 100px;
   	   	  	height: 100px;
   	   	  	background-color: yellow;
   	   	  	position: absolute;
   	   	  }
   	   	  #box2{
   	   	  	width: 100px;
   	   	  	height: 100px;
   	   	  	background-color: red;
   	   	  	position: absolute;
   	   	  	left: 200px;
   	   	  	top:200px;
   	   	  }
   	   </style>
   	   <script type="text/javascript">
   	   	   window.onload = function(){
   	   	   	   /*
                 拖拽box1元素
                  - 拖拽的流程
                    1.当鼠标在被拖拽元素上按下时,开始拖拽onmousedown
                    2.当鼠标移动时,被拖拽元素跟着鼠标移动,onmousemove
                    3.当鼠标松开时,被拖拽元素固定在当前位置,onmouseup
   	   	   	   */
   	   	   	   //获取拖拽对象
   	   	   	   var box1 = document.getElementById("box1");
   	   	   	   //为box1绑定按下的事件
   	   	   	   box1.onmousedown = function(event){
                 
                 //兼容ie8
   	   	   	   	 box1.setCapture && box1.setCapture();
                 //div的偏移量 鼠标.clientX - 元素.offsetLeft
                 //div的偏移量 鼠标.clientY - 元素.offsetTop
                   event = event || window.event;

                   var ol = event.clientX - box1.offsetLeft;
                   var ot = event.clientY - box1.offsetTop;

 

                  document.onmousemove = function(event){
                  	event = event || window.event;
                  	//获取元素的坐标
                  	var left = event.clientX - ol;
                  	var top = event.clientY - ot;
                  	//修改box1的位置
                  	box1.style.left = left + "px";
                  	box1.style.top = top + "px";
                  };
                  document.onmouseup = function(){
                  	document.onmousemove = null;
                  	document.onmouseup = null;

                  	box1.releaseCapture && box1.releaseCapture();
                  };
                  //取消浏览器默认行为,对ie8不起作用
                  return false;
   	   	   	   };

   	   	   	    var box2 = document.getElementById("box2");
   	   	   	   //为box1绑定按下的事件
   	   	   	   box2.onmousedown = function(event){
                 
                 //兼容ie8
   	   	   	   	 box2.setCapture && box2.setCapture();
                 //div的偏移量 鼠标.clientX - 元素.offsetLeft
                 //div的偏移量 鼠标.clientY - 元素.offsetTop
                   event = event || window.event;

                   var ol = event.clientX - box2.offsetLeft;
                   var ot = event.clientY - box2.offsetTop;

 

                  document.onmousemove = function(event){
                  	event = event || window.event;
                  	//获取元素的坐标
                  	var left = event.clientX - ol;
                  	var top = event.clientY - ot;
                  	//修改box1的位置
                  	box2.style.left = left + "px";
                  	box2.style.top = top + "px";
                  };
                  document.onmouseup = function(){
                  	document.onmousemove = null;
                  	document.onmouseup = null;

                  	box2.releaseCapture && box2.releaseCapture();
                  };
                  //取消浏览器默认行为,对ie8不起作用
                  return false;
   	   	   	   };
   	   	   };
   	   </script>
   </head>
   <body>
   	   
       <div id="box1"></div>
   	   <div id="box2"></div>
   </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值