라라리라

2023.09.12 / Step 5 [DOM_비동기] - 코딩 50 일차 본문

코딩/2023 JavaScript DOM

2023.09.12 / Step 5 [DOM_비동기] - 코딩 50 일차

헤실 2023. 9. 12. 20:59

_0501_setInterval1.html

 

<!DOCTYPE html>
<html lang="ko">
<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>
</head>
<body>

    <!--
        [개념] setInterval() 메서드
            (1) setInterval(함수명, 시간)
            (1) 지정된 간격(밀리초)으로 함수를 호출한다.
            (2) 메서드는 창이 닫힐 때까지 setInterval() 을 계속 호출한다.
            (3) 1초 = 1000밀리초
    -->

    <h1>일정 시간 간격으로 값 증감시키기</h1>
    <!-- clearInterval()은 Interval함수를 정지시킴 -->
    <button onclick="clearInterval(auto)">증가 정지</button>  

    <script>
        let num = 0;
        function addNumber(){
            num += 1;
            console.log("num: " + num);
        }
        // setInterval(함수(){}, 밀리세컨드)
        // 해당 시간간격만큼 해당 함수를 호출함(애니메이션)
        let auto = setInterval(addNumber, 100);     // 0.1초 간격으로 addNumber함수 호출
    </script>
   
</body>
</html>

 

Document

일정 시간 간격으로 값 증감시키기

 


_0501_setInterval2.html

 

<!DOCTYPE html>
<html lang="ko">
<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>
</head>

    <!--
        [개념] clearInterval() 메서드
            (1) setInterval() 메서드에서 반환된 ID를 저장한다.
            (2) clearInterval(ID명)
            (3) 설정된 타이머를 지운다.
    -->

<body onload="changeColor()">
    <div id="target">
        <p>This is a Text.</p>
    </div>
    <button onclick="stopTextColor()">중지</button>

    <script>
        let id = null;
        function changeColor() {
            id = setInterval(flashText, 500);   // 0.5초 간격으로 호출
        }
        function flashText() {
            let elem = document.getElementById("target");
            elem.style.color = (elem.style.color == "red") ? "blue" : "red";
            elem.style.backgroundColor =
                (elem.style.backgroundColor == "green") ? "yellow" : "green";
        }

        /*
            color => red, blue
            backgroundColor => green, yellow
        */

        function stopTextColor() {
            clearInterval(id);
        }
    </script>
</body>
</html>

 

Document

This is a Text.

 


_0501_setInterval3.html

 

<!DOCTYPE html>
<html lang="ko">
<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>
   
    <style>
        #content {
            width: 300px;
            height: 300px;
            font-size: 100px;
            text-align: center;     /* 텍스트 가로 가운데 정렬 */
            line-height: 300px;     /* 텍스트 세로 가운데 정렬 */

            border: 1px solid black;
        }
    </style>

</head>
<body>

    <div id="content">
        0
    </div>

    <script>
        let element = document.getElementById("content");
        let cnt = 0;

        // 익명 함수 구조
        /*
        setInterval(function() {
            cnt++;
            element.innerHTML = cnt;
        }, 1000);
        */

        // 일반 함수 구조
        function addCnt() {
            cnt++;

            element.innerText = cnt;
        }

        setInterval(addCnt, 1000);
    </script>
   
</body>
</html>

 

Document
0

 


_0501_setInterval4.html

 

<!DOCTYPE html>
<html lang="ko">
<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>
   
    <style>
        #content {
            width: 300px;
            height: 300px;
            font-size: 100px;
            text-align: center;     /* 텍스트 가로 가운데 정렬 */
            line-height: 300px;     /* 텍스트 세로 가운데 정렬 */

            border: 1px solid black;
        }
    </style>

</head>
<body>

    <div id="content">
        0
    </div>
    <button onclick="stopCnt()">중지</button>

    <script>
        let element = document.getElementById("content");
        let myTimer = setInterval(addCnt, 1000);
       
        let cnt = 0;

        function addCnt() {
            cnt++;

            element.innerHTML = cnt;
        }

        function stopCnt() {
            clearInterval(myTimer);
        }
    </script>
   
</body>
</html>

 

Document
0