+ -
当前位置:首页 → 问答吧 → ******当前鼠标座标(不在事件中)******

******当前鼠标座标(不在事件中)******

时间:2011-12-02

来源:互联网

js 取 当前鼠标座标问题。

提示:
JScript code

$(document.body).mousemove(function(ev) {
    ev = ev || window.event;        
    document.title="x:"+ev.clientX.toString()+"y:"+ev.clientY.toString()+";"
}    

不要写这种给我,这个我会。


我要下面这种
JScript code
var TimerGetPoint = setInterval    (function(ev){
   var MouseX=' 你在这里写代码';
   var MouseY=' 你在这里写代码';
   document.title="x:"+MouseX+"y:"+MouseY+";"
},100);    

作者: hetengfei_   发布时间: 2011-12-02

不可以运行?还是有什么问题?chrome下通过
HTML code
<script>
document.onmousemove = function(ev) {
    ev = ev || window.event;        
    document.title="x:"+ev.clientX.toString()+"y:"+ev.clientY.toString()+";"
}  
</script>


作者: p2227   发布时间: 2011-12-02

取鼠标座标的function 不在 mouse事件中。
在 setInterval () 里面的函数中来取得.
比如 
JScript code
var TimerGetPoint = setInterval    (function(ev){
  // 在这种地方 可能连 指南指 都没有用啊。
},100);    






作者: hetengfei_   发布时间: 2011-12-02

好吧,原来是我没有看到“我要下面这种”这句话,不过如果鼠标不在浏览器窗口里面,你也要获得鼠标的坐标么

作者: p2227   发布时间: 2011-12-02

引用 3 楼 p2227 的回复:
好吧,原来是我没有看到“我要下面这种”这句话,不过如果鼠标不在浏览器窗口里面,你也要获得鼠标的坐标么

能就最好了,不行也没有关系的。

作者: hetengfei_   发布时间: 2011-12-02

请问下面那种代码有什么用?

作者: rao3324180   发布时间: 2011-12-02

引用 4 楼 hetengfei_ 的回复:

引用 3 楼 p2227 的回复:
好吧,原来是我没有看到“我要下面这种”这句话,不过如果鼠标不在浏览器窗口里面,你也要获得鼠标的坐标么

能就最好了,不行也没有关系的。
既然你说不行也没有关系,那说明你只关心在窗口里面的鼠标坐标。
既然在窗口里面,如果鼠标不移动,那鼠标坐标不变,setInterval 无意义。
如果 鼠标动了,那引发mousemove,回到你的提示

所以结论是你另外遇到有问题,setInterval 只是一种半成品的解决你的问题的方案

我这边测试过,如果有iframe,光是提示的代码是不够,不知道你实际上是遇到了什么问题。

作者: p2227   发布时间: 2011-12-02

引用 5 楼 rao3324180 的回复:

请问下面那种代码有什么用?
楼主想得到一种无论鼠标动不动,在哪里动都获得当前坐标的方法的意思。

作者: p2227   发布时间: 2011-12-02

必须在事件里 没其他办法只有通过event获得

作者: ifandui   发布时间: 2011-12-02

引用 6 楼 p2227 的回复:
既然你说不行也没有关系,那说明你只关心在窗口里面的鼠标坐标。
既然在窗口里面,如果鼠标不移动,那鼠标坐标不变,setInterval 无意义。
如果 鼠标动了,那……

问题:做 拖动div 的 遇到的。
我想高手的你也做过吧。
那你可以会遇同我一样的问题, (电脑 跟不上导致的Bug)
div 拖动时, 发果 mousemove 函数还没有执行完毕,你的鼠标已移过 div 范围了。
此时你的mouse 突然 UP;
那你的div 现在还处的拖动状态,可是你的鼠标已径UP 了。 这就是你的BUG!
我用 setInterval 就可以避免此bug ;

作者: hetengfei_   发布时间: 2011-12-02

div 拖动时, 如果 mousemove 函数还没有执行完毕,你的鼠标已移过 div 范围了。
此时你的mouse 突然 UP,但是我们用到div 的mouseup 作为取消拖动状态;
但 (已移过 div 范围) 那么此时的 mouse 突然 UP
因过了div范围 就不会使得执行div的mouseup 来取消拖动状态。

ok?

作者: hetengfei_   发布时间: 2011-12-02

我见到一些现成的拖动div都是在拖动的时候只显示一个虚框,完成后再把dom真正移过去,这样大概会减少浏览器的渲染工作吧。不知道你的电脑配置还是浏览器(比如IE6什么的)的问题上面的方案能不能处理,或者再等看楼下会不会出现高手。

作者: p2227   发布时间: 2011-12-02

相关阅读 更多