Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2011, 10:55
Новичок на форуме
Отправить личное сообщение для beat Посмотреть профиль Найти все сообщения от beat
 
Регистрация: 24.06.2011
Сообщений: 6

Отслеживание положения курсора
Подскажите пожалуйста по моему вопросу. Мне нужно отследить перемещение курсора мишки вверх броузера, то есть когда курсор покидает рабочую область документа, и при этом движется на верх (там где табы, меню и т.д.) тогда выплывает событие.

Реализовал вот так (на примере с использованием MooTools, но и без его знания и так все ясно):

document.addEvent('mouseleave', function (e) {
    if(e.page.y <= 5) {
        console.log('leave');
    } 
});


работает отлично, но только не в IE (7-9), в IE - когда покидаю рабочею область документа, то e.page.y всегда рано -1, и оно всегда -1, с какой стороны я бы не покидал окно.
Ответить с цитированием
  #2 (permalink)  
Старый 24.06.2011, 19:13
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от beat
в IE - когда покидаю рабочею область документа, то e.page.y всегда рано -1
Не правда:
<script src="http://ajax.googleapis.com/ajax/libs/mootools/1.3.2/mootools-yui-compressed.js" type="text/javascript"></script>
<script>
window.addEvent('domready', function() {
    document.addEvent('mouseleave', function(event) {
        var y = event.page.y;
        $$('body').set('html', (y <= 5 ? 'out' : 'in')+' : '+y);
    });
});
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2011, 19:42
Новичок на форуме
Отправить личное сообщение для beat Посмотреть профиль Найти все сообщения от beat
 
Регистрация: 24.06.2011
Сообщений: 6

в IE7 всегда -1
в IE8, если мишку вести очень медленно то сработает корректно, если же нормально (не быстро даже), то -1
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2011, 10:43
Новичок на форуме
Отправить личное сообщение для beat Посмотреть профиль Найти все сообщения от beat
 
Регистрация: 24.06.2011
Сообщений: 6

вообще как и IE отслеживать координаты мыши, если при резком движении мышой такой скрипт:
document.addEvent('mousemove', function (e) {
   console.log(e.page.x);
});

видает:

Код:
Журнал: 943 
Журнал: 1088 
Журнал: 1171 
Журнал: 1285 
Журнал: 1423

ну я не хочу точности до пикселя, но все же где потерялись участки вплоть до 100-150 px
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2011, 10:46
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Как вариант сохраняй последние 3-5 координат мыши, и при событии mouseleave проверяй их, если они идут в порядке убывания (y1 < y2 < y3) то можно сказать что мышка ушла вверх. Ну или как то так.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Смена картинок в зависимости от положения курсора мыши antonio_vrn Events/DOM/Window 3 31.05.2011 22:07
Смена положения курсора в текстовой строке trikadin Элементы интерфейса 4 12.11.2010 02:00
Появление текста при наведении курсора на ссылку Александра Элементы интерфейса 1 11.05.2009 00:22
установка позиции курсора или выделения в iframe mister_maxim Events/DOM/Window 5 18.04.2009 10:43