Разница в clientX и clientY при выходе из браузера на ie / ff - PullRequest
1 голос
/ 24 марта 2010

Я только что столкнулся с небольшой проблемой с clientX и clientY.

Я поместил небольшое событие, чтобы определить, уходит ли мышь из окна, и узнать, где оно выходит. И тут возникает проблема, он отлично работает с Firefox, но отправляет только -1 в качестве ответа в IE. Кто-нибудь знает, есть ли способ легко решить эту проблему и без использования фреймворка?

Немного кода, чтобы воспроизвести это:

<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 на firefox

e.clientY: -1 e.clientX: -1 на ie.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 марта 2010
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;
    }

из моего проекта. Подумай вот что тебе нужно

0 голосов
/ 24 марта 2010

Ну, так или иначе, не означает ли e.clientX <0, что курсор находится за пределами окна? </p>

...