본문 바로가기
프론트엔드/Javascript

[Javascript] 타이머 / 카운트다운 / 멈추기 setInterval / clearInterval

by jinwanseo 2021. 5. 27.
728x90

[자바스크립트 / Javascript] 타이머 / 카운트 다운 / 멈추기 

 

 

setInterval : 일정 시간 (millisecond) 마다 반복하여 함수 실행

clearInterval : 일정 시간 마다 반복되는 setInterval 실행 종료

 

  기본 형태

//1000밀리세컨드 (1초) 마다 콜백함수 실행
let play = setInterval(콜백함수,1000);

//play 멈추기
clearInterval(play);

 

  샘플 예제 

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>타이머 시작 / 멈춤 예제</title>
</head>
<body>
  <input type="button" class="timer" value="Start Timer">
  <script>
    //버튼 엘리먼트 Selector
    const stopBtn = document.querySelector('.timer');
    //현재 시간 (sec)
    let currentSecond = 10;
    //타이머 변수
    var playTimer;
    //타이머 실행시 반복 실행 되는 콜백 함수
    const playHandler = () => {
      currentSecond = currentSecond - 1;
      if(currentSecond === 0){
        console.log('땡!');
        clearInterval(playTimer);
      }
      console.log(currentSecond + '초 남았습니다');
    };

    //타이머 버튼 클릭시 
    //타이머 시작 / 타이머 멈춤
    stopBtn.addEventListener('click',e=>{
      if(e.target.value==="Start Timer"){
        playTimer = setInterval(playHandler,1000);
        e.target.value='Stop Timer';
      }else {
        clearInterval(playTimer);
        currentSecond = 10;
        e.target.value = 'Start Timer';
      }

    });
  </script>
</body>
</html>

 

  실행 결과

728x90

댓글