层移动到窗体底部导致内容向下滚动后,鼠标与层脱离的问题求助
下面的代码是想实现层的移动,但当快速拖动层到窗体底部导致窗体内容向下滚动时,松开鼠标后层不会停止移动,而是继续随鼠标移动,但鼠标指针跑到了层范围之外无法操控,哪位高手给指点下。
<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>
<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>
...全文
相关推荐
QT指定区域添加滚动条,去掉窗体标题栏,鼠标点击指定位置移动窗体,没有标题栏实现最大化
QT指定区域添加滚动条,去掉窗体标题栏,鼠标点击指定位置移动窗体,没有标题栏实现最大化
父子窗体滚动条支持鼠标滚轮移动
保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
通过窗体句柄控制鼠标移动和点击
通过窗体句柄控制鼠标移动和点击,获得窗体句柄需要SPY++软件,压缩包里有,双击GetHwndAndClass.exe启动
C#实现随鼠标移动窗体实例
本文实例讲述了c#实现随鼠标移动窗体的方法,分享给大家供大家参考。 具体实现方法如下: private void MainForm_Load(object sender, EventArgs e) { //绑定事件 MouseMove += Form_MouseMove; MouseDown += Form_MouseDown; } private Point _mousePoint; private void Form_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left
C# 通过鼠标滚轮实现缩放图片和移动图片
C# 通过鼠标实现放大图片和移动图片,内附有源码和exe,实现鼠标滚轮放大和图片平移


