js 取 当前鼠标座标问题。提示:$(document.body).mousemove(function(ev) {
ev = ev || window.event;
document.title="x:"+ev.clientX.toString()+"y:"+ev.clientY.toString()+";"
}
不要写这种给我,这个我会。
我要下面这种
var TimerGetPoint = setInterval (function(ev){
var MouseX=' 你在这里写代码';
var MouseY=' 你在这里写代码';
document.title="x:"+MouseX+"y:"+MouseY+";"
},100);
ev = ev || window.event;
document.title="x:"+ev.clientX.toString()+"y:"+ev.clientY.toString()+";"
}
不要写这种给我,这个我会。
我要下面这种
var TimerGetPoint = setInterval (function(ev){
var MouseX=' 你在这里写代码';
var MouseY=' 你在这里写代码';
document.title="x:"+MouseX+"y:"+MouseY+";"
},100);
<script>
document.onmousemove = function(ev) {
ev = ev || window.event;
document.title="x:"+ev.clientX.toString()+"y:"+ev.clientY.toString()+";"
}
</script>
在 setInterval () 里面的函数中来取得.
比如
var TimerGetPoint = setInterval (function(ev){
// 在这种地方 可能连 指南指 都没有用啊。
},100);
既然在窗口里面,如果鼠标不移动,那鼠标坐标不变,setInterval 无意义。
如果 鼠标动了,那引发mousemove,回到你的提示所以结论是你另外遇到有问题,setInterval 只是一种半成品的解决你的问题的方案我这边测试过,如果有iframe,光是提示的代码是不够,不知道你实际上是遇到了什么问题。
我想高手的你也做过吧。
那你可以会遇同我一样的问题, (电脑 跟不上导致的Bug)
div 拖动时, 发果 mousemove 函数还没有执行完毕,你的鼠标已移过 div 范围了。
此时你的mouse 突然 UP;
那你的div 现在还处的拖动状态,可是你的鼠标已径UP 了。 这就是你的BUG!
我用 setInterval 就可以避免此bug ;
此时你的mouse 突然 UP,但是我们用到div 的mouseup 作为取消拖动状态;
但 (已移过 div 范围) 那么此时的 mouse 突然 UP
因过了div范围 就不会使得执行div的mouseup 来取消拖动状态。ok?
<head runat="server">
<title></title>
<style type="text/css">
/*----------------这里是card Page CSS------------------*/
#MainCardDiv{
width: 200px;
height: 100%;
position: absolute;
top:100px;
left:600px;
margin: 1px;
padding: 1px;
border-color:Green;
border-width:1px;
border-style:solid;
background-color:#e0e0e5;
}
/*标题*/
#cardFirstRow
{
border-color:Yellow;
background-color:#304054;
color:White;
border-width:1px;
border-style:solid;
height:20px;
width:100%;
cursor:pointer;
}
#SmallAndCancel{
float:right;
width:60px;
height:100%;
}
#cardDisplayMenu,#cardAutoMide,#cardCancel
{
float:left;
width:18px;
height:18px;
border-width:1px;
border-style:solid;
border-color:#b0b0b0;
background-color:White;
color:#000;
cursor:pointer;
}
#cardThirdRow,#cardSecondRow
{
border-color:Green;
background-color:#c0c0c0;
border-width:1px;
border-style:solid;
height:30px;
width:100%;
}
</style>
<script type="text/javascript" src="JS/jquery-1.4.2.js"></script>
<script src="JS/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
var AttrPage= function(){
this.IsDrapDiv;
//上一座标
this.lastX;
this.lastY;
this.MoveTimer;
//当前 座标
this.CenterMouseX;
this.CenterMouseY; //作用:移动div。
this.fPageMove=function (){
if(this.IsDrapDiv) //是不是可以移动
{
if((this.CenterMouseX!=this.lastX )||( this.CenterMouseY!=this.lastY))
{
$("#showMyInfo1").html(parseInt($("#showMyInfo1").html())+1);
$("#showMyInfo2").html(this.CenterMouseX+":"+this.CenterMouseY);
$("#MainCardDiv").css("left",((parseInt($("#MainCardDiv").css("left"))+this.CenterMouseX - this.lastX)) + "px");
$("#MainCardDiv").css("top",((parseInt($("#MainCardDiv").css("top"))+this.CenterMouseY - this.lastY)) + "px");
this.lastX=this.CenterMouseX ;
this.lastY=this.CenterMouseY ;
}
}
}
};
// 默认值
AttrPage.prototype.IsDrapDiv=false;
AttrPage.prototype.lastX=0;
AttrPage.prototype.lastY=0;
AttrPage.prototype.CenterMouseX=0;
AttrPage.prototype.CenterMouseY=0;
//初始一个对象
$(function() {
var AttrPageObj=new AttrPage();
$("#cardFirstRow").mousedown(function(ev) {
//alert("down");
ev = ev || window.event; // 事件
AttrPageObj.lastX=ev.clientX ; //点下时的鼠标座标
AttrPageObj.lastY=ev.clientY ;
AttrPageObj.CenterMouseX=ev.clientX;
AttrPageObj.CenterMouseY=ev.clientY;
AttrPageObj.IsDrapDiv=true; //可以Move了
AttrPageObj.MoveTimer=setInterval(function(){
AttrPageObj.fPageMove();
},100);
});
$(document.body).mousemove(function(ev){
//计录位置
if(AttrPageObj.IsDrapDiv)
{
ev = ev || window.event;
AttrPageObj.CenterMouseX=ev.clientX;
AttrPageObj.CenterMouseY=ev.clientY;
//$("#showMyInfo").html(parseInt($("#showMyInfo").html())+1);
//$("#showMyInfo").html(AttrPageObj.CenterMouseX+":"+AttrPageObj.CenterMouseY);
}
}).mouseup(function(){
//停止 拖动状态
if(AttrPageObj.IsDrapDiv)//当 拖动状态 时
{
AttrPageObj.fPageMove(); //先移位
clearInterval(AttrPageObj.MoveTimer);
AttrPageObj.MoveTimer=false;
AttrPageObj.IsDrapDiv=false; //停止Move了
//alert("Up");
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="MainCardDiv" grade="0" >
<div id="cardFirstRow" >
标题
<div id="SmallAndCancel">
<div id="cardDisplayMenu">▼</div>
<div id="cardAutoMide">〓</div>
<div id="cardCancel"><strong>X</strong></div>
</div>
</div>
<div id="cardSecondRow" >2</div>
<div id="cardThirdRow" >3</div>
<div id="CardContentRows">content </div>
</div>
<div id="showMyInfo1">1</div>
<div id="showMyInfo2">1</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
</form>
</body>
</html>
因用setInterval 来实现的。