使用jQuery检测鼠标移动

3
有没有一种方法可以在jquery中检测鼠标停止移动?
2个回答

4

使用setTimeout,并在鼠标移动时清除它。如果鼠标在setTimeout指定的时间内没有移动,则可以假设鼠标已停止移动。利用jQuery,您可以这样做:

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

每次鼠标移动时设置和取消超时时间有些繁琐,但它应该适合您的需求。


由于不需要将其设置为匿名函数,因此您应该将“var stop_timeout = false;”移动到匿名函数内部。 - Justin Johnson

1
使用hoverintent,它可以为您完成所有这些操作。它具有跟踪鼠标移动的间隔,并知道您的加速度何时减慢(因此您正在尝试“真正”悬停在某个位置)。
它也非常容易使用。您基本上只需要更改您的 $(选择器).hover(…)
到 $(选择器).hoverIntent(…)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接