@prolina

Работа с таймером js?

Есть таблица с карточками (отдельная карточка - card), по клику на какую-либо из карт, должен запускаться таймер.
let moveCount = 0;
let lockBoard = false;
let time = 0;
let seconds = 0;
let minutes = 0;
const timer = document.getElementById('timer');

const flipCard = (e) =>  {
    if (lockBoard) return;
    const card = e.currentTarget;
    card.classList.add('flip');
    
    if (!hasFlippedCard) {
        hasFlippedCard = true;
        firstCard = card;
        return;
    }
    secondCard = card;
    hasFlippedCard = false;
   // checkForMatch();
};
card.addEventListener('click', flipCard);

Если был добавлен класс flip, то надо запустить таймер и чтобы он работал внезависимости от того, сколько дальше будет кликов, пока, к примеру, не кликнешь на кнопку стоп. Таймер должен вызваться единожды, когда был клик по карте.

const startTime = () => {
    time = setInterval (  () => {
        seconds++;
        if(seconds === 60) {
            minutes++;
            seconds = 0;
        }
        timer.innerHTML = `${minutes} mins ${seconds} secs`;
    }, 1000);
};

const stopTime = () =>	{
    clearInterval (time);
};
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
card.addEventListener('click', flipCard);
card.addEventListener('click', clickTimer);
card.timer = null;

function clickTimer() {
  if (!card.timer) { // если таймера еще нет
    card.timer = setTimeout(function(){ // добавляем таймер
      // после окончания
      card.timer = null // можно будет навесить новый таймер
      // do something
    }, 100500) // 1m 40.5 sec
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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