有没有办法检测鼠标何时停止在jquery中移动?
答案 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( ... )