1

我刚刚遇到了clientX和clientY的一个小问题。

我放了一个小事件来检测鼠标是否离开窗口并知道它在哪里退出。麻烦来了,它在 Firefox 上运行良好,但在 IE 中只发送 -1 作为答案。有人知道是否有办法在不使用框架的情况下轻松解决该问题?

一些代码来重现它:

<html>
  <head>
    <script type="text/javascript">
 document.onmouseout=function(e){
  if (!e) var e = window.event;
  var relTarg = e.relatedTarget || e.toElement;
  if (!relTarg){
  document.getElementById('result1').innerHTML="e.clientY:"+e.clientY+" e.clientX:"+e.clientX;
  }
 };
    </script>

  </head>
  <body>
 <div id="result1">Not Yet</div>
  </body>
</html>

如果我从窗口左侧退出,结果是:

e.clientY:302 e.clientX:-130 在火狐上

e.clientY:-1 e.clientX:-1 在即。

提前致谢。

4

2 回答 2

0

好吧,无论哪种方式, e.clientX < 0 不意味着光标在窗口之外吗?

于 2010-03-24T01:33:01.193 回答
0
if(e.pageX)
    {
        _xmouse = e.pageX;
        _ymouse = e.pageY;
    }
    else
    {
        if(typeof(event) == "undefined") return;
        _xmouse = event.clientX + document.body.scrollLeft;
        _ymouse = event.clientY + document.body.scrollTop;
    }

从我的项目。认为这就是你需要的

于 2010-03-24T05:46:39.820 回答