原生js拖拽

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<style type="text/css">
		.drag{
			position:absolute;
			width:200px;
			height:200px;
			cursor: move;
			display: block;
			border:1px solid #000;
			background-color:red;
		}
	</style>
</head>
<body>
	<div class="drag" id="drag"></div>
	<script type="text/javascript">
		window.οnlοad=function(){
			var drag=document.getElementById('drag');
			drag.οnmοusedοwn=function(e){
				var e=e || window.event;
				var disX=e.clientX-drag.offsetLeft;
				var disY=e.clientY-drag.offsetTop;
				//解决低版本ie bug
				if(typeof drag.setCapture!="undefined"){
					drag.setCapture();
				}
				/*低版本ie bug:物体被拖出浏览器可是窗口外部时,还会出现滚动条,  
            解决方法是采用ie浏览器独有的2个方法setCapture()\releaseCapture(),这两个方法,  
            可以让鼠标滑动到浏览器外部也可以捕获到事件,而我们的bug就是当鼠标移出浏览器的时候,  
            限制超过的功能就失效了。用这个方法,即可解决这个问题。注:这两个方法用于onmousedown和onmouseup中*/  
				document.οnmοusemοve=function(e){
					var e=e || window.event;
					var left=e.clientX-disX;
					var top=e.clientY-disY;
					if(left<0){
						left=0;
					}else if(left>window.innerWidth-drag.offsetWidth){
						left=window.innerWidth-drag.offsetWidth;
					}

					if(top<0){
						top=0;
					}else if(top>window.innerHeight-drag.offsetHeight){
						top=window.innerHeight-drag.offsetHeight;
					}

					drag.style.left=left+'px';
					drag.style.top=top+'px';
				};
				document.οnmοuseup=function(e){
					this.οnmοusemοve=null;
					this.οnmοusedοwn=null;

					if(typeof drag.releaseCapture!="undefined"){
						drag.releaseCapture();
					}
				};
			};
		}
	</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值