Как реализовать запуск функции js при бездействии пользователя
Всем привет. Помогите, пожалуйста. Мне нужно, чтобы мой код js запускался при бездействии пользователя, но когда пользователь активизировался, нужно выключить мой код.
Вот такой код:
var $classLoop = $('.tab'),
i = 0;
setInterval(function () {
$classLoop.removeClass('active').filter($classLoop[i]).toggleClass('active');
i < $classLoop.length - 1 ? i++ : i = 0;
}, 2000);
Вот, что я попробовал сделать, но после того, как пользователь начал двигать мышью и кликать ею, мой код (выше) остается активным. Мне его нужно выключить.
var no_active_delay = 3; // Количество секунд простоя мыши, при котором пользователь считается неактивным
var now_no_active = 0; // Текущее количество секунд простоя мыши
setInterval("now_no_active++;", 1000); // Каждую секунду увеличиваем количество секунд простоя мыши
setInterval("updateChat()", 2000); // Запускаем функцию updateChat() через определённый интервал
document.onmousemove = activeUser; // Ставим обработчик на движение курсора мыши
function activeUser() {
now_no_active = 0; // Обнуляем счётчик простоя секунд
}
function updateChat() {
if (now_no_active >= no_active_delay) { // Проверяем не превышен ли "предел активности" пользователя
var $classLoop = $('.tab'),
i = 0;
setInterval(function () {
$classLoop.removeClass('active').filter($classLoop[i]).toggleClass('active');
i < $classLoop.length - 1 ? i++ : i = 0;
}, 2000);
return;
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
var timer;
function activeUser() {
cleartInterval(timer);
...
timer = setInterval(...