Я пытаюсь найти чистый способ агрегирования событий перемещения мыши, чтобы гарантировать, что мой код вызывается, но только один раз каждые 250-300 миллисекунд.
Я думал об использовании чего-то вродениже, но мне было интересно, есть ли лучший шаблон или что-то, что предоставляет jQuery, который будет делать то же самое:
var mousemove_timeout = null;
$('body').mousemove(function() {
if (mousemove_timeout == null) {
mousemove_timeout = window.setTimeout(myFunction, 250);
}
});
function myFunction() {
/*
* Run my code...
*/
mousemove_timeout = null;
}
РЕДАКТИРОВАТЬ: Принятый ответ ниже будет отлично работать для этой ситуацииОднако я обнаружил, что функциональность mousestop()
, предоставленная в ответе, фактически устранила мою потребность в агрегировании, поэтому, если вы читаете этот вопрос и ищете ответ, посмотрите, является ли плагин mousestop тебе действительно нужно!