鼠標拖曳的效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
*{ margin:0; padding:0;}
#dragDiv{ width:200px; height:200px; position:absolute; top:100px; left:100px; background:#ddd;}
</style>
</head>

<body>
<div id="dragDiv"></div>
<script type="text/javascript">
var dragDiv=document.getElementById('dragDiv');
//鼠標按下動做
dragDiv.onmousedown=function(event){
	var e=event||window.event,
		t=e.target||e.srcElement,
		//鼠標按下時的座標x1,y1
		x1=e.clientX,
		y1=e.clientY,
		//鼠標按下時的左右偏移量
		dragLeft=this.offsetLeft,
		dragTop=this.offsetTop;
	document.onmousemove=function(event){
		var e=event||window.event,
			t=e.target||e.srcElement,
			//鼠標移動時的動態座標
			x2=e.clientX,
			y2=e.clientY,
			//鼠標移動時的座標的變化量
			x=x2-x1,
			y=y2-y1;
		dragDiv.style.left=(dragLeft+x)+'px';
		dragDiv.style.top=(dragTop+y)+'px';
	}
	document.onmouseup=function(){
		this.onmousemove=null;	
	}
}
</script>
</body>
</html>

鼠標拖曳的效果,ps:下面的代碼在火狐下是有bug的,這是由於拖拽元素的innerHTML是空的,解決辦法能夠加空的<span></span>標籤或讓其裏面有內容便可,有興趣可  以試一下javascript

相關文章
相關標籤/搜索