Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
¿Cómo se ejecuta la cuenta regresiva nuevamente después de 3 segundos en Javascript?

La cuenta regresiva circular de 10 a 1 funciona correctamente pero quiero iniciar la cuenta regresiva nuevamente (de 10 a 1 sin recargar) después de una pausa de 3 segundos. He intentado usar setTimeOut dentro de setTimeOut pero no funciona. Aquí está el código.

 var countdownNumberEl = document.getElementById('countdown-number'); var countdown = 10; countdownNumberEl.textContent = countdown; setInterval(function() { countdown = --countdown <= 0 ? 10 : countdown; countdownNumberEl.textContent = countdown; setInterval(function(){ countdownNumberEl.textContent = countdown; },3000) }, 1000);
 <div id="countdown"> <div id="countdown-number"></div> <svg> <circle r="18" cx="20" cy="20"></circle> </svg> </div>

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

simplemente agregue 3 segundos como inicial y cambie textContent cuando sea menos de 10

 let countdownNumberEl = document.getElementById('countdown-number'); let countdown = 10; countdownNumberEl.textContent = countdown; setInterval(function() { countdown = --countdown <= 0 ? 13 : countdown; if (countdown > 10) { return; } countdownNumberEl.textContent = countdown; }, 1000);
 <div id="countdown"> <div id="countdown-number"></div> <svg> <circle r="18" cx="20" cy="20"></circle> </svg> </div>

about 4 years ago · Santiago Trujillo Report

0

Lo probé con una función de puntero. Detengo el intervalo al llegar a 1 y uso setTimeout() para comenzar un nuevo intervalo.

 startInterval = () => { // setup markup and count let countdownNumberEl = document.getElementById('countdown-number'); let countdown = 10; countdownNumberEl.textContent = countdown; // start the interval intervalId = setInterval(function () { --countdown; if(countdown < 1) { // stop interval clearInterval(intervalId); // pause and start a new interval setTimeout(startInterval, 3000); } else { // update markup countdownNumberEl.textContent = countdown; } }, 1000); } startInterval();
 <div id="countdown"> <div id="countdown-number"></div> <svg> <circle r="18" cx="20" cy="20"></circle> </svg> </div>

ref: ¿Función Javascript setInterval para borrarse?

about 4 years ago · Santiago Trujillo Report

0

Como mencionó que ha intentado resolver el problema con funciones setTimeout anidadas. También es posible hacer eso:

 const countdownNumberEl = document.getElementById('countdown-number'); const repeatCountdownFrom = (n, waitTimeout) => { countdownFrom(n, () => setTimeout(() => repeatCountdownFrom(n, waitTimeout) , waitTimeout) ) } const countdownFrom = (n, callbackWhenDone) => { if(n >= 0) { setTimeout(() => { countdownNumberEl.textContent = n; countdownFrom(n - 1, callbackWhenDone); }, 1000); } else { callbackWhenDone(); } } repeatCountdownFrom(10, 3000);
 <div id="countdown-number"></div>

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!