DIV拖动效果的实现。

//拖动实现。
var DD = function ($){
	var htmlObj = null;
	var ddObj = null;
	var top;
	var left;
	var _x;
	var _y;
	//鼠标按下的时候
	function _mouseDown(event){
		event = window.event || event;//IE的Event是全局事件,FF的不是
		//layerX/layerY:事件相对于当前坐标系的位移(FF,需要设置position属性为absolute或者relative方可用)
		//offsetX/offsetY:事件相对于当前父元素的位移(IE);
		_x = event.layerX || event.offsetX;
		_y = event.layerY || event.offsetY;
		
		htmlObj.style.cursor = "move";
		if(htmlObj.setCapture){
			htmlObj.setCapture();
			htmlObj.onmousemove = _mouseMove;
			htmlObj.onmouseup = _mouseUp;
		}else if(window.captureEvents){
			window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
			document.onmousemove = _mouseMove;
			document.onmouseup = _mouseUp;
		}
	}
	//鼠标释放的时候
	function _mouseUp(event){
		event = window.event || event;//IE的Event是全局事件,FF的不是
		htmlObj.style.cursor = "";
		if(htmlObj.releaseCapture){
			htmlObj.releaseCapture();
			htmlObj.onmousemove = null;
			htmlObj.onmouseup = null;
		}else if(window.captureEvents){
			window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
			document.onmousemove = null;
			document.onmouseup = null;
		}
	}
	//鼠标移动的时候
	function _mouseMove(event){
		event = window.event || event;//IE的Event是全局事件,FF的不是
		//pageX/pageY相对于网页的位移(FF)
		//clientX/clientY相对于可视窗口的位移(IE)
		var x = event.pageX || event.clientX;
		var y = event.pageY || event.clientY;
		
		//获取滚动条的坐标
		left = document.body.scrollLeft;
		top = document.body.scrollTop;
		
		
		//计算位置
		x = x - _x + left;
		y = y - _y + top;
		//当X和Y坐标小于0时,默认为0
		x = x < 0 ? 0 : x;
		y = y < 0 ? 0 : y;
		
		$(ddObj).css("top",y);
		$(ddObj).css("left",x);
		$(ddObj).fadeIn("fast");
	}
	
	function ddrag(onHtml,ddHtml){
		htmlObj = onHtml;
		ddObj = ddHtml;
		htmlObj.onmousedown = _mouseDown;
	}
	
	return {
		ddrag : ddrag
	};
}(jQuery);


 

 

说明:

onHtml:它为鼠标点击按下时的HTML对象

ddHtml:它为需要拖动的HTML对象。

一般默认onHtml为ddHtml的子元素。

 

调用方式:

DD.ddrag(document.getElementById("_title"),document.getElementById("showDescTextArea"));

 

 

HTML代码:

 

<div id="showDescTextArea" οnkeypress="escHideDiv(event)" style="display: none;position: absolute;background-color: #CCCCFF;border: thick double #CCCCFF;z-index: 10000">
			<h5 id="_title"></h5>
			<textarea rows="10" cols="50" name="_desc" id="_desc" ></textarea><br/>
			<input type="button" class="btn_width1111" value="确定" οnclick="ok()"/>	
			<input type="button" class="btn_width1111" value="取消" οnclick="hideDiv()"/>	
		</div>


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

psyuhen

你的鼓励是我最大的动力谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值