限制范围的拖拽

这篇博客通过一个简单的HTML和JavaScript示例展示了如何创建一个限制在指定范围内的拖拽功能。作者使用`onmousedown`、`onmousemove`和`onmouseup`事件来监听鼠标操作,并通过计算鼠标相对于元素的初始位置来更新元素的位置。同时,代码中还包含了防止元素超出页面边界的条件判断,确保了拖拽过程中的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>限制范围的拖拽</title>
	<style>
		#div1{
			width:100px;
			height:100px;
			background:red;
			position:absolute;
		}
		img{
			position: absolute;
		}
	</style>
	<script type="text/javascript">
		window.onload = function(){
			var oDiv = document.getElementById("div1");
			var oImg = document.getElementById("img1");
			drag( oDiv);
			drag( oImg);
			function drag(obj){
				obj .onmousedown = function(ev){
				var ev = ev||event;
				var disX = ev.clientX-this.offsetLeft;
				var disY = ev.clientY-this.offsetTop;
				if(obj.setCapture){
					obj.setCapture();
				}
				document.onmousemove= function(ev){
					var ev = ev||event;
					var L = ev.clientX-disX;
					var T = ev.clientY-disY;
					if(L<0 ){
						L = 0;
					}else if(L>document.documentElement.clientWidth-obj.offsetWidth){
						L = document.documentElement.clientWidth-obj.offsetWidth;
					}
					if(T<0 ){
						T= 0;
					}else if(T>document.documentElement.clientHeight-obj.offsetHeight){
						T = document.documentElement.clientHeight-obj.offsetHeight;
					}//先判断并设置L和T的值,再设置left和top 值为有更好的用户体验效果。
					obj.style.left = L +"px";
					obj.style.top= T +"px";
				}
				document.onmouseup = function(){
					document.onmousemove = null;
					if(obj.releaseCapture){
						obj.releaseCapture();
					}
				}
				return false;//取消事件的默认行为
			}
		}



			
		}
	</script>
</head>
<body>
	fdsgdfdsfsdf	
	<div id="div1"></div>
	<img id="img1" src="../img/cake2.jpg">
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值