Как приостановить обратный отсчет с помощью кнопки для перенаправления страницы?

#javascript #html #countdown

Вопрос:

У меня уже есть этот код на javascript

     <script type="text/javascript">
  var count = 20; // Timer
  var redirect = "https://www.instagram.com/"; // Target URL

  function countDown() {
    var timer = document.getElementById("timer"); // Timer ID
    if (count > 0) {
      count--;
      timer.innerHTML = "przekieruje cię za "   count   " sekund."; // Timer Message
      setTimeout("countDown()", 1000);
    } else {
      window.location.href = redirect;
    }
  }
</script>
 

Я хотел бы разместить кнопку с паузой на своем html — сайте-она будет работать так: «если я нажму кнопку во время обратного отсчета, она будет остановлена, но если я нажму еще раз, она возобновится». Я пытался ввести clearInterval в код, но это не сработало. Я действительно любитель, когда дело доходит до javascript.

Комментарии:

1. Так как вы используете тайм- аут , то вы должны использовать clearTimeout вместо clearInterval

Ответ №1:

Ничего особенного

 (async()=>{
    const timer = document.getElementById('timer');

    let timerId;
    let tf = false;
    let k = 7;

    const plusplus = async()=>{
        timer.innerHTML = k   ' dancing cows left';
        if(k < 1)clearInterval(timerId);
        else k--;
    };

    plusplus();
    timerId = setInterval(plusplus, 1000);
    document.getElementById('button').addEventListener('click', ()=>{
        if(!tf)clearInterval(timerId);
        else timerId = setInterval(plusplus, 1000);
        tf = !tf;
    });
})(); 
 <button id="button">stop / resume</button>
<div id="timer"></div> 

Комментарии:

1. Мой друг, я не вижу перенаправления в этом скрипте после того, как обратный отсчет достиг 0, но спасибо за ответ!

2. @Zimnyjestem if(k < 1)clearInterval(timerId); эта строка