层移动到窗体底部导致内容向下滚动后,鼠标与层脱离的问题求助
下面的代码是想实现层的移动,但当快速拖动层到窗体底部导致窗体内容向下滚动时,松开鼠标后层不会停止移动,而是继续随鼠标移动,但鼠标指针跑到了层范围之外无法操控,哪位高手给指点下。
<html>
<head>
</head>
<body onmousemove="move('floatDiv',event)">
<script>
var down=false,divleft,divtop;
function move(objId,e){
if(e==null) e=window.event;
var obj=document.getElementById(objId);
if(down){
obj.style.left=e.clientX-divleft;
obj.style.top=e.clientY-divtop
}
if(parseInt(obj.style.left)<0) obj.style.left=10; //左边界限制
if(parseInt(obj.style.top)<0) obj.style.top=10; //上边界限制
//右边界限制
if(parseInt(obj.style.left)>(document.body.clientWidth-obj.clientWidth))
obj.style.left=document.body.clientWidth-obj.clientWidth-10;
//下边界限制
var sClientHeight=document.body.clientHeight;
var sScrollTop=(document.documentElement.scrollTop||document.body.scrollTop);
if(parseInt(obj.style.top)>(sClientHeight+sScrollTop-obj.clientHeight))
obj.style.top=sClientHeight+sScrollTop-obj.clientHeight-10;
obj.innerHTML='X:'+obj.style.left+"<br>Y:"+obj.style.top;
}
</script>
asdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdf2008-10-16asdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asasdfasdfasdf<br>
asdfasdfasdf<br>asdfasdfasdf<br>asas
<div id="floatDiv" style="z-index:888; position:absolute; left:300px; top:100px; width:100px; height:200px; cursor:move; border:1px solid black; background:#EEEEEE;" onmousedown="down=true; divleft=event.clientX-parseInt(this.style.left); divtop=event.clientY-parseInt(this.style.top);" onmouseup="down=false;"></div>
</body>
</html>