#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);
эта строка