인프런 커뮤니티 질문&답변

Amen님의 프로필 이미지
Amen

작성한 질문수

인터랙티브 웹 개발 제대로 시작하기

전진! 3D 스크롤 22

e.keyCode 질문

해결된 질문

작성

·

838

0

vscode에서 사용은되지만 줄그어지길래 보니까 duplicated 되었다는데. 최근에는

다른방식으로 사용하나요?? 

비슷한 속성값인데 문자열로 출력되는 key 속성이 있던데 이걸많이사용하는지..

답변 2

2

안녕하세요, Amen님!

keyCode 기능은 더 이상 권장되지 않습니다. 일부 브라우저에서는 여전히 동작할 수 있지만, 이미 관련 웹 표준에서 제거되었을 수 있으며 삭제되는 과정에 있거나 호환성 목적으로만 보관할 것입니다

사용을 피하시고 가능한 경우 기존 코드를 업데이트하셔야 합니다.

duplicated된 기능은 가급적으로 사용하지 않으시는 것이 좋습니다. 

대체안으로 KeyboardEvent.code 가 사용된다고 합니다.

keyCode 문서는 여기 를 참고해주세요.

대체안인 KeyboardEvent.code 문서는 이 곳 을 참고해주시면 됩니다 :)

밑에는 예제 코드입니다 ! 참고해주세요 .

window.addEventListener("keydown", function(event) {
  if (event.defaultPrevented) {
    return; // Do nothing if event already handled
  }

  switch(event.code) {
    case "KeyS":
    case "ArrowDown":
      // Handle "back"
      updatePosition(-moveRate);
      break;
    case "KeyW":
    case "ArrowUp":
      // Handle "forward"
      updatePosition(moveRate);
      break;
    case "KeyA":
    case "ArrowLeft":
      // Handle "turn left"
      angle -= turnRate;
      break;
    case "KeyD":
    case "ArrowRight":
      // Handle "turn right"
      angle += turnRate;
      break;
  }
Amen님의 프로필 이미지
Amen
질문자

자세한 답변 감사드립니다 ( __ ) 

0

e.key === 'ArrowLeft' 와 e.key === 'ArrowRight'로 해결하면 되는군요!

Amen님의 프로필 이미지
Amen

작성한 질문수

질문하기