Javascript jQuery-检测鼠标是否静止?
我想知道是否有办法在jQuery中检测鼠标是否空闲3秒钟。有没有我不知道的插件?因为我认为不存在原生jQuery方法。任何帮助都将不胜感激 不需要插件,甚至根本不需要jQuery:Javascript jQuery-检测鼠标是否静止?,javascript,jquery,plugins,mouse,Javascript,Jquery,Plugins,Mouse,我想知道是否有办法在jQuery中检测鼠标是否空闲3秒钟。有没有我不知道的插件?因为我认为不存在原生jQuery方法。任何帮助都将不胜感激 不需要插件,甚至根本不需要jQuery: (function() { var idlefunction = function() { // what to do when mouse is idle }, idletimer, idlestart = function() {idletimer =
(function() {
var idlefunction = function() {
// what to do when mouse is idle
}, idletimer,
idlestart = function() {idletimer = setTimeout(idlefunction,3000);},
idlebreak = function() {clearTimeout(idletimer); idlestart();};
if( window.addEventListener)
document.documentElement.addEventListener("mousemove",idlebreak,true);
else
document.documentElement.attachEvent("onmousemove",idlebreak,true);
})();
您可以收听
mousemove
事件,在超时发生时启动超时并取消任何现有超时
var timeout = null;
$(document).on('mousemove', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
console.log('Mouse idle for 3 sec');
}, 3000);
});
这在没有jQuery的情况下也可以很容易地完成(这里仅绑定特定于jQuery的事件处理程序)。可能重复感谢!这正是我要找的-d可能希望在计时器触发后将
超时设置回null
,以避免执行无效的clearTimeout()
@jfriend00:真的没关系。即使是null
检查。@FelixKling OK,所以我所做的就是将它与jScrollPane插件结合使用,这样,如果用户空闲3秒钟,滚动条就会消失在视野之外。当用户不空闲时,如何使其重新出现?(例如,当他/她移动鼠标时?)我尝试创建一个完全独立的函数,但它不起作用。@ModernDesigner:只需将其放入事件处理程序中即可。每当鼠标移动时就会触发mousemove
事件(如上所述),即不再空闲。看看我是如何删除演示中的文本的。