jQuery - определить, есть ли мышь?
Мне было интересно, есть ли способ обнаружить, что мышь простаивает как 3 секунды в jQuery. Есть ли плагин, о котором я не знаю? Потому что я не верю, что есть собственный метод jQuery. Любая помощь приветствуется!
Ответы
Ответ 1
Вы можете прослушивать событие mousemove
, запускать тайм-аут всякий раз, когда это происходит, и отменить любой существующий тайм-аут.
var timeout = null;
$(document).on('mousemove', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
console.log('Mouse idle for 3 sec');
}, 3000);
});
DEMO
Это можно легко сделать без jQuery (только привязка обработчика события здесь jQuery-specific).
Ответ 2
Нет необходимости в плагине или даже для jQuery вообще:
(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);
})();