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

HTML DOM Event type 속성 – 이벤트 유형 확인 방법과 예제

HTML DOM의 Event type 속성은 발생한 이벤트의 유형을 나타내는 문자열을 반환합니다. 반환되는 값으로는 click, keypress, load, touchend 등이 있으며, 이 속성을 활용하면 하나의 이벤트 핸들러 안에서 여러 종류의 이벤트를 구분해 처리할 수 있습니다.

문법(Syntax)

event.type

Event type 속성은 읽기 전용(read-only)이며, 별도의 매개변수 없이 이벤트 객체에서 바로 참조할 수 있습니다. 이벤트 리스너에 전달된 event 객체의 type 프로퍼티를 읽으면 현재 발생한 이벤트의 이름을 문자열로 얻을 수 있습니다.

예제

다음 예제에서는 원형 요소에 click 이벤트와 touchstart 이벤트 리스너를 등록한 뒤, event.type 값으로 어떤 이벤트가 발생했는지 판별합니다. 이벤트 유형에 따라 서로 다른 CSS 클래스를 적용하고, 화면에는 발생한 이벤트 이름을 출력합니다.

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM Event type</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;
      transition: all 1.3s ease;
  }
   .clickStyle {
      transform: scale(1.5);
  }
   .touchstartStyle {
      transform: translateX(50px);
  }
</style>
</head>
<body>
   <form>
      <fieldset>
         <legend>HTML-DOM-Event-type</legend>
         <div class="playArea"></div><br>
         <div id="divDisplay"></div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var playDisplay = document.getElementsByClassName("playArea")[0];
   var TranslateXSelect = document.getElementById("TranslateXSelect");
   var ScaleSelect = document.getElementById("ScaleSelect");
   function getEventType(event) {
      if(event.type === 'click'){
         playDisplay.classList.remove('touchstartStyle');
         playDisplay.classList.add('clickStyle');
            divDisplay.textContent = 'Event Fired: '+event.type;
      } else if(event.type === 'touchstart'){
         playDisplay.classList.remove('clickStyle');
         playDisplay.classList.add('touchstartStyle');
         divDisplay.textContent = 'Event Fired: '+event.type;
      }
   }
   playDisplay.addEventListener("click", getEventType);
   playDisplay.addEventListener("touchstart", getEventType);
</script>
</body>
</html>

출력 결과

div 요소를 클릭하기 전 − 빨간색 원형 요소가 기본 상태로 표시됩니다.

HTML DOM Event type 속성 – 이벤트 유형 확인 방법과 예제

div 요소를 클릭한 후 − event.typeclick으로 판별되어 원이 1.5배 확대되고, "Event Fired: click"이라는 메시지가 화면에 나타납니다.

HTML DOM Event type 속성 – 이벤트 유형 확인 방법과 예제

div 요소를 터치한 후 − event.typetouchstart로 판별되어 원이 오른쪽으로 50px 이동하고, "Event Fired: touchstart"라는 메시지가 표시됩니다.

HTML DOM Event type 속성 – 이벤트 유형 확인 방법과 예제

이처럼 Event type 속성을 사용하면 마우스 클릭과 터치 입력처럼 서로 다른 입력 방식을 하나의 핸들러에서 손쉽게 분기 처리할 수 있어, 반응형 웹이나 모바일 환경을 지원하는 인터랙티브 UI를 만들 때 특히 유용합니다.