层移动到窗体底部导致内容向下滚动后,鼠标与层脱离的问题求助

yiran5467 yiran5467 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面的代码是想实现层的移动,但当快速拖动层到窗体底部导致窗体内容向下滚动时,松开鼠标后层不会停止移动,而是继续随鼠标移动,但鼠标指针跑到了层范围之外无法操控,哪位高手给指点下。

<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>
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
yiran5467
JavaScript 87,983 成员 224,681 内容