js拖动drag实现,只需传入jquery对象以及可选偏移量

今天在做gis过程中,需要实现对popup的拖动,所以做了以下实现。


	//绑定drap事件,d为jquery对象,_x_y为偏移量
	var bindDrag = function(d,_x,_y){
		var _canDarg = 0;
		var _oldxy = {x:0,y:0};
		alert(_x+" " +_y);
		if(_x != 0 && _x != undefined){
			_oldxy.x = _x;
		}
		if(_y != 0 && _y != undefined){
			_oldxy.y = _y;
		}
		d.mousedown(function(e){		
			_canDarg = 1;
			if(_oldxy.x == 0){
				_oldxy.x = e.clientX - d.offset().left;
			}
			if(_oldxy.y == 0 ){
				_oldxy.y = e.clientY - d.offset().top;
			}		
		});
		$(document).mousemove(function(e){
			if(_canDarg == 1){
				d.css("position","absolute");
				d.css("left",e.clientX-_oldxy.x);
	    	d.css("top",e.clientY-_oldxy.y);
			}
		});
		$(document).mouseup(function(e){
			if(_canDarg ==1){
				_canDarg = 0;
			}
		});
	};

你可能感兴趣的:(js drap 拖动)