본문 바로가기
✨ Front-end/자바스크립트(JS)

[JavaScript] 타이머 예제 setInterval, clearInterval, timeOut

by 환풍 2023. 2. 19.
728x90
반응형

Timeout 함수

setTimeout 은 ~초후 코드를 실행하는 것이다. 즉, 일정 시간이 지난 후 함수가 한번 실행 된다.
clearTimeoutsetTimeout 함수를 취소한다.

 

Interval 함수

setInterval매 일정시간마다 함수가 계속 실행 된다.
clearIntervalsetInterval 함수에 의해 실행된 반복 작업을 종료한다.

 

코드의 예는 이렇다. 

1
2
3
// X초후 코드를 실행하려면
setTimeout(function() {실행할코드}, ms )
1000ms = 1초
cs

 

1
2
3
4
5
// 1초마다 실행이다.
setInterval(function(){
   console.log('1');
}, 1000);
 
cs

5초가 지나면 알람박스를 사라지는 기능을 만들어보았다.

 

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <link rel="stylesheet" href="main.css">
  <script src="result.js"> </script>
  
  <script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
</head>
<body>
  <div class="alert alert-danger">
    <span id="num">5</span>초 이내 구매시 사은품 증정
  </div>
 
  <button onclick="re()">새로고침</button>
 
</form>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
 
 
cs

CSS

1
2
3
4
button{
  margin:auto;
  display:block;
}
cs

JS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var count = 5;
 setInterval(function () {
        count--;
        if (count >= 0
        {
            document.querySelector("#num").innerHTML = count;
        } 
        else 
        {
            clearInterval();
            document.querySelector(".alert-danger").style.display = "none";
        }
    }, 1000);
 
   function re(){
    location.reload();
   }
cs

See the Pen Untitled by park (@johong) on CodePen.

728x90
반응형

댓글