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

HTML DOM TouchEvent metaKey 속성 – 터치 이벤트에서 Meta 키 감지하기

HTML DOM의 TouchEvent metaKey 속성은 터치 이벤트가 발생한 순간 Meta 키(Windows의 Windows 키, macOS의 Command ⌘ 키)가 함께 눌려 있었는지 여부를 나타내는 불리언(Boolean) 값을 반환합니다.

이 속성을 활용하면 터치 조작과 동시에 보조 키가 눌렸는지 감지할 수 있어, 모바일 환경에서 핫키(hotkey) 기반 인터랙션을 구현할 때 특히 유용합니다.

문법

metaKey 속성은 다음과 같은 형태로 사용하며, true 또는 false 중 하나의 불리언 값을 반환합니다.

touchEvent.metaKey

반환되는 각 값의 의미는 아래 표와 같습니다.

booleanValue
설명
true
터치 이벤트가 발생했을 때 Meta 키가 눌려 있었음을 의미합니다.
false
터치 이벤트가 발생했을 때 Meta 키가 눌려 있지 않았음을 의미합니다.

참고 사항

본문의 터치 이벤트 예제는 모바일 기기 또는 터치 입력이 가능한 시스템에서 접속한 온라인 HTML 에디터에서 실행했습니다. 화면을 2초간 길게 터치하는 것과 같은 실제 터치 조작으로 결과를 직접 확인할 수 있습니다.

예제

아래 예제에서는 폼(form) 영역을 터치했을 때 Meta 키가 함께 눌려 있다면 배경색을 파란색으로 변경하고, 'meta Key Pressed'라는 안내 문구를 화면에 표시합니다.

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM TouchEvent metaKey</title>
<style>
   form {
      width:70%;
      margin: 0 auto;
      text-align: center;
  }
   * {
      padding: 2px;
      margin:5px;
  }
   input[type="button"] {
      border-radius: 10px;
  }
   legend{
      border-color: #dc3545;
  }
   span {
      display: inline-block;
      width: 40px;
      height: 20px;
      margin: 1px;
      color: #fff;
      border: 3px solid black;
  }
   div span:nth-child(1){
      background-color: #FF8A00;
  }
   div span:nth-child(2){
      background-color: #F44336;
  }
   div span:nth-child(3){
      background-color: #03A9F4;
  }
   div span:nth-child(4){
      background-color: #4CAF50;
  }
</style>
</head>
<body>
   <form id="formSelect" ontouchstart="eventAction(event)">
      <fieldset>
         <legend>HTML-DOM-TouchEvent-metaKey</legend>
         <label for="textSelect">Background Color Changer</label>
         <div><span>Alt</span><span>Ctrl</span><span>Meta</span><span>Shift</span></div>
         <div id="divDisplay">No HotKey Pressed</div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var formSelect = document.getElementById("formSelect");
   function eventAction(event) {
      if(event.metaKey){
         formSelect.style.backgroundColor = '#03A9F4';
         formSelect.style.color = '#FFF'
         divDisplay.textContent = 'meta Key Pressed';
    }
 }
</script>
</body>
</html>

실행 결과

터치 이벤트 발생 전

HTML DOM TouchEvent metaKey 속성 – 터치 이벤트에서 Meta 키 감지하기

Meta 키를 누른 상태에서 터치 이벤트 발생 후

HTML DOM TouchEvent metaKey 속성 – 터치 이벤트에서 Meta 키 감지하기