Обнаружение перемещения мыши с помощью jquery - PullRequest
3 голосов
/ 20 декабря 2009

Есть ли способ определить, когда мышь остановила движение в jquery?

Ответы [ 2 ]

4 голосов
/ 20 декабря 2009

Да, используйте setTimeout и очищайте его каждый раз, когда движется мышь. Если мышь не двигалась за время, указанное в setTimeout, вы можете предположить, что мышь перестала двигаться. Используя jQuery, вы можете сделать что-то вроде этого:

var stop_timeout = false;
$(function() {
    $().mousemove(function() {
        clearTimeout(stop_timeout);
        stop_timeout = setTimeout(function() {
            alert("The mouse has stopped.");
        }, 1000);            
    });
});

Немного тяжело устанавливать и сбрасывать таймауты каждый раз, когда мышь двигается, но это должно работать для ваших целей.

1 голос
/ 21 декабря 2009

Используйте hoverintent, он сделает все это за вас. Он имеет интервал, который отслеживает ваши движения мыши и знает, когда ваше ускорение замедлилось (поэтому вы пытаетесь «по-настоящему» зависнуть над чем-либо).

Он также невероятно прост в использовании. Вам просто нужно поменять

$( selector ).hover( ... )

до

$( selector ).hoverIntent( ... )

http://cherne.net/brian/resources/jquery.hoverIntent.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...