1
resposta

TEMPORIZADOR NÃO FUNCIONA

Uncaught ReferenceError: tempoDecorridoEmSegundos is not defined contagemRegressiva file:///C:/Users/Joice/Downloads/Projeto Fokus/Fokus-projeto-base/script.js:67 setInterval handler*iniciar file:///C:/Users/Joice/Downloads/Projeto Fokus/Fokus-projeto-base/script.js:79

const html = document.querySelector('html') const focoBt = document.querySelector('.app__card-button--foco ') const curtoBt = document.querySelector('.app__card-button--curto') const longoBt = document.querySelector('.app__card-button--longo') const banner = document.querySelector('.app__image') const titulo = document.querySelector('.app__title') const botoes = document.querySelectorAll('.app__card-button') const startPauseBt = document.querySelector('#start-pause') const musicaFocoInput = document.querySelector('#alternar-musica') const musica = new Audio('/sons/luna-rise-part-one.mp3') musica.loop = true;

musicaFocoInput.addEventListener('change', () => { if(musica.paused){ musica.play() } else { musica.pause() } })

focoBt.addEventListener('click ', () => { alterarContexto('foco') focoBt.classList.add('active')

})

curtoBt.addEventListener('click', () => { alterarContexto('descanso-curto') curtoBt.classList.add("active") })

longoBt.addEventListener('click', () => { alterarContexto('descanso-longo') longoBt.classList.add('active') })

function alterarContexto(contexto) { botoes.forEach(function (contexto){ contexto.classList.remove('active') })

html.setAttribute('data-contexto' , contexto) banner.setAttribute('src',/imagens/${contexto}.png) switch (contexto) { case "foco": titulo.innerHTML = Otimize sua produtividade,<br> <strong class="app__title-strong">mergulhe no que importa.</strong> break; case "descanso-curto": titulo.innerHTML = Que tal uma respirada?<br> <strong class="app__title-strong>Faça uma pausa curta!</strong> break; case "descanso-longo": titulo.innerHTML = Hora de voltar à superficie.<br><strong class="app__title-strong"> Faça uma pausa longa.</strong> default: break; } }

const contagemRegressiva = () => { if(tempoDecorridoEmSegundos <= 0){ zerar() alert('Tempo finalizado!') return } tempoDecorridoEmSegundos -= 1 console.log('Temporizador. ' + tempoDecorridoEmSegundos) }

startPauseBt.addEventListener('click', iniciar)

function iniciar (){ intervaloId = setInterval(contagemRegressiva, 1000) }

function zerar() { clearInterval(intervaloId) intervaloId = null }

1 resposta

Bom dia, Jocenice. O erro está acontecendo porque a variável tempoDecorridoEmSegundos não foi declarada antes de ser usada, o mesmo acontece com a variável intervaloId. Você pode fazer a declaração de ambas logo abaixo da linha musica.loop = true. Na aula o instrutor declara as variaveis com os seguintes valores:

let tempoDecorridoEmSegundos = 0;
let intervaloId = null;