jquery实现dom元素的移动

本文介绍如何利用jQuery库中的mousedown、mousemove和mouseup事件,实现对DOM对象在页面上的拖拽移动。通过改变鼠标指针形状、获取初始位置及计算鼠标移动时的坐标偏移,实现对象的平滑移动,同时确保在对象离开自身边界时,移动行为依然有效。

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

//需要传递一个jquery的dom对象,该dom就可以在页面移动。
	function domMove(j_dom){
		j_dom.mousedown(function(e){
			var dh=document.body.scrollHeight;
			var sh=document.body.scrollWidth;
			j_dom.css("cursor","move");//改变鼠标指针的形状  
			var offset = j_dom.offset();//DIV在页面的位置  
	        var x = e.pageX - offset.left;//获得鼠标指针离DIV元素左边界的距离  
	        var y = e.pageY - offset.top;//获得鼠标指针离DIV元素上边界的距离  
	        $(document).bind("mousemove",function(ev){//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件  
	        	j_dom.stop();
	                  var _x = ev.pageX - x;//获得X轴方向移动的值  
	                  var _y = ev.pageY - y;//获得Y轴方向移动的值  
	                  _x=_x<0?0:_x;
	                  _y=_y<0?0:_y;
	                  _x=_x>sh-j_dom.width()?sh-j_dom.width():_x;
	                  _y=_y>dh-j_dom.height()?dh-j_dom.height():_y;
	                  j_dom.animate({left:_x+"px",top:_y+"px"},10); 
	             });  
	       $(document).mouseup(function(){  
	      	    j_dom.css("cursor","default");  
	      	    $(this).unbind("mousemove");  
	        })  
		});
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值