Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM UiEvent 객체 완벽 가이드 – detail과 view 속성 이해하기

HTML DOM UiEvent 객체는 사용자가 HTML 요소와 상호작용할 때 발생하는 이벤트를 나타내는 인터페이스입니다. 클릭, 키보드 입력 등 사용자의 행동으로 인해 트리거되는 모든 UI 이벤트의 기반이 되는 객체라고 할 수 있습니다.

UiEvent 객체의 주요 속성

UiEvent 객체는 다음과 같은 속성을 제공합니다.

속성설명
detail이벤트에 대한 세부 정보를 담고 있는 숫자를 반환합니다. 예를 들어 마우스 클릭 이벤트에서는 연속 클릭 횟수를 나타냅니다.
view이벤트가 발생한 Window 객체에 대한 참조를 반환합니다.

detail 속성 활용 예제

아래 예제는 detail 속성을 활용하여 노란색 원을 연속으로 클릭하면 클릭 횟수가 점수로 기록되고, 최고 점수가 갱신되는 간단한 게임입니다.

예제 코드

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM UiEvent detail</title>
<style>
    form {
        width:70%;
        margin: 0 auto;
        text-align: center;
    }
    * {
        padding: 2px;
        margin:5px;
    }
    input[type="button"] {
        border-radius: 10px;
    }
    #playArea {
        display: inline-block;
        border-radius: 50%;
        background-color: #DC3545;
        width: 50px;
        height: 50px;
        border: 3px solid #AC3509;
    }
    #clickOn {
        border: 3px solid #F0FF33;
        margin: 15px auto;
        border-radius: 50%;
        background-color: #FFF933;
        width: 10px;
        height: 10px;
    }
    h2 {
        display: inline-block;
    }
</style>
</head>
<body>
    <form>
        <fieldset>
            <legend>HTML-DOM-UiEvent-detail</legend>
            <h2 id="highScore">High Score: 0</h2>
            <h2 id="currScore">Current Score: 0</h2><br>
            <div id="playArea"><div onclick="getHighScore(event)" id="clickOn"></div></div><br>
        </fieldset>
    </form>
<script>
    var clickOn = document.getElementById("clickOn");
    var playDisplay = document.getElementById("playArea");
    var highScore = document.getElementById("highScore");
    var currScore = document.getElementById("currScore");
    var high = 0, score = 0;
    function getHighScore(event) {
        var score = event.detail;
        currScore.textContent = 'Current Score: '+score;
            if(score > high){
                highScore.textContent = 'High Score: '+score;
                high = score;
            }
    }
</script>
</body>
</html>

실행 결과

노란색 div 요소를 클릭하기 전 화면은 아래와 같습니다.

HTML DOM UiEvent 객체 완벽 가이드 – detail과 view 속성 이해하기

노란색 div 요소를 계속 클릭한 후, 현재 점수와 최고 점수가 함께 증가하는 것을 확인할 수 있습니다.

HTML DOM UiEvent 객체 완벽 가이드 – detail과 view 속성 이해하기

노란색 div 요소를 이전보다 적은 횟수로 클릭한 후, 현재 점수는 감소하지만 기존의 최고 점수는 그대로 유지됩니다.

HTML DOM UiEvent 객체 완벽 가이드 – detail과 view 속성 이해하기

정리

이처럼 UiEvent의 detail 속성은 사용자가 요소를 몇 번 클릭했는지와 같은 이벤트 관련 세부 정보를 숫자로 제공하며, view 속성은 이벤트가 발생한 창(Window) 객체를 참조할 때 유용하게 사용됩니다. 두 속성을 잘 활용하면 사용자 상호작용 기반의 동적인 웹 페이지를 손쉽게 구현할 수 있습니다.