Задача заключается в том, чтобы при отсутствии движения мышью над элементом, через N-ное количество времени вызывать функцию.
Код который у меня получился, кажется не совсем грамотным, не смотря на то, что вроде как и работает.
Думаю должно быть более красивое решение.
Прошу подсказать.
scene.addEventListener('mousemove', activity, false);
let move;
function activity(event) {
if(event) {
move = true;
console.log(move);
clearInterval(interval);
}
}
setInterval(function() {
interval= setTimeout(function() {
move = false;
console.log(move);
}, 1000);
}, 1000);
UPD: Нашел следующее решение
let notActiveDelay = 5,
timeNotActive = 0,
interval1,
interval2;
scene.addEventListener('mousemove', activity, false);
function activity() {
console.log('timeNotActive: 0');
timeNotActive = 0;
}
function intervals() {
int1 = setInterval(function() {
console.log('timeNotActive: ' + timeNotActive);
timeNotActive++;
}, 1000);
int2 = setInterval(function() {
if(timeNotActive >= notActiveDelay) {
console.log('Простой');
clearInterval(int1);
clearInterval(int2);
timeNotActive = 0;
test();
}
}, 1000);
}
intervals();
function test() {
setTimeout(function() {
intervals();
}, 5000);
}
Все ли в нем верно?