用jquery检测mousemove

时间:2009-12-20 20:43:03

标签: javascript jquery mouseevent

有没有办法检测鼠标何时停止在jquery中移动?

2 个答案:

答案 0 :(得分:4)

是的,使用setTimeout并在每次鼠标移动时清除它。如果鼠标未在setTimeout中指定的时间内移动,则可以假定鼠标已停止移动。利用jQuery,你可以这样做:

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

每次鼠标移动时设置和取消设置超时都有点沉重,但它应该适用于您的目的。

答案 1 :(得分:1)

使用hoverintent,它会为您完成所有这些。它有一个跟踪你的鼠标移动的间隔,知道你的加速度减慢的时间(所以你试图“真正地”悬停在某些东西上)。

它也非常容易使用。你基本上只需要改变你的

$( selector ).hover( ... )

$( selector ).hoverIntent( ... )

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