mouseleave in IE, pageY = -1
Привет всем!
Возникла такая проблема. Нужно отследить, когда курсор мыши выходит за окно ВВЕРХУ. На просторах интернета нашел такую реализацию: $(document).mouseleave(function (e) { if (e.pageY - $(window).scrollTop() <= 1) { alert('Курсор вышел!'); } }); Этот код не работает в IE в том плане, что если включена developer tab, то при выводе курсора вниз за эту табку, pageY становится равным -1 тогда, как в FF или Chrome он равен 600-700px, т.е. реальному значению Y. Как получить в IE адекватное значение Y? Пробовал различного рода код для исправления event в IE, все равно выдает -1. Если кто сталкивался, поделитесь опытом! Заранее спасибо. |
$(document).mouseleave(function (e) { e = e || window.event; if (e.pageY - $(window).scrollTop() <= 1) { alert('Курсор вышел!'); } }); может так? |
Пробовал такой вот код для исправления события:
function fixEvent(e) { // получить объект событие для IE e = e || window.event // добавить pageX/pageY для IE if (e.pageX == null && e.clientX != null) { var html = document.documentElement; var body = document.body; e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0); e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0); } return e; } но не помогло |
а если просто взять ширину окна браузера и если позици мыши по х больше ширины то значит курсор вне браузера?
|
мне нужно именно по y, так как нужно отследить когда курсор выходит за документ через верх
|
ну так возьмите высоту окна=)
|
в том то и дело, что в ишаке позиция по y и по x кстати тоже определяется не правильно, возвращает -1 вместо реальных значений. Поэтому способ отловить не очень важен, нужно для этого получить правильные значения координат мышки.
|
незнаю недавно был скрипт в котором нужно было отслеживать позицию мыши и все работало идеально через clientX & clientY.
вот к примеру код document.onmousemove = mouseMove function mouseMove(event){ event = fixEvent(event) document.getElementById('mouseX').value = event.pageX document.getElementById('mouseY').value = event.pageY } |
а лутчше вот посморите http://javascript.ru/ui/draganddrop#...-drag-and-drop
|
Часовой пояс GMT +3, время: 13:59. |