Как остановить таймер при неактивном окне?

Имеется такой код:
let timer; // пока пустая переменная
		let x = 40; // стартовое значение обратного отсчета
		countdown(); // вызов функции
		function countdown(){  // функция обратного отсчета
		  	document.getElementById('timer').innerHTML = x;
		  	x--; // уменьшаем число на единицу
		  	document.addEventListener('visibilitychange', () => {
				if (document.hidden) {
					document.title = 'Пожалуйста, вернитесь на страницу!';
					let timer = document.getElementById('timer').innerHTML;
					clearTimeout(timer);
				} 
				else {
					document.title = $('.showframe').attr('id');
				}

				$(document).ready(function(){
				  	setTimeout(function(){
				  	  	frame_loaded();
				  	}, 10000);
				});
			});
		  	if (x < -1){
		    	clearTimeout(timer); // таймер остановится на нуле
		    	document.getElementById('timer').innerHTML = 'Готово';
		  	}
		  	else {
		    	timer = setTimeout(countdown, 1000);
		  	}
		}


Пробовал своими силами смастерить, но безрезультатно...
Необходимый цикл выполнения:
При активном окне таймер должен работать как положено, если окно перестало быть активным - таймер должен остановиться, при возврате пользователя на страницу таймер должен возобновиться с той секунды на которой остановился при уходе пользователя со страницы.
Помогите пожалуйста.
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
Используй blur и focus на window. Такие вопросы очень просто гуглятся
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы