SoShin_
소신
SoShin_
전체 방문자
오늘
어제
  • 분류 전체보기
    • Study
      • HTML | CSS
      • JavaScript
      • Django
      • Python
      • Flask
      • Git
      • Project
      • 이것저것
      • 코딩테스트
      • NestJS
    • Review
      • Book
      • Movie & Drama

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 장고 제네릭뷰
  • FLASK
  • SQLAlchemy
  • 영화추천
  • node.js
  • allauth
  • Python
  • 장고 유저기능
  • 장고 allauth
  • 유저기능
  • openpyxl
  • 위도경도
  • SQLite
  • 코딩테스트
  • JavaScript
  • KakaoAPI
  • 문제풀이
  • Django 유효성 검증
  • js
  • 장고
  • 자바스크립트
  • Django
  • 플라스크
  • flask orm
  • orm
  • 영화리뷰
  • MongoDB
  • db
  • 파이썬
  • Django allauth

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SoShin_

소신

[ JS ] Event 정리
Study/JavaScript

[ JS ] Event 정리

2022. 2. 8. 22:11
반응형

Mouse Event

1. MouseEvent.button

마우스 이벤트 객체의 버튼 프로퍼티를 활용하면, 마우스 버튼을 눌렀을 때 일어난 이벤트에 대해서 어떤 버튼을 눌러서 일어난 이벤트인지를 정확하게 알아낼 수 있다!

값 내용
0 마우스 왼쪽 버튼
1 마우스 휠
2 마우스 오른쪽 버튼
3 X1 (일반적으로 브라우저 뒤로 가기 버튼)
4 X2 (일반적으로 브라우저 앞으로 가기 버튼)

이때, mouseenter, mouseleave, mouseover, mouseout, mousemove 처럼 마우스 이동과 관련된 이벤트에서는 이 값이 null이나 undefined가 아니라 0 입니다!

2. MouseEvent.type

이벤트 타입 내용
mousedown 마우스 버튼을 누르는 순간
mouseup 마우스 버튼을 눌렀다 떼는 순간
click 왼쪽 버튼을 클릭한 순간
dblclick 왼쪽 버튼을 빠르게 두 번 클릭한 순간
contextmenu 오른쪽 버튼을 클릭한 순간
mousemove 마우스를 움직이는 순간
mouseover 마우스 포인터가 요소 위로 올라온 순간
mouseout 마우스 포인터가 요소에서 벗어나는 순간
mouseenter 마우스 포인터가 요소 위로 올라온 순간 (버블링이 일어나지 않음)
mouseleave 마우스 포인터가 요소에서 벗어나는 순간 (버블링이 일어나지 않음)

3. MouseEvent.위치프로퍼티

프로퍼티 설명
clientX, clientY 마우스 포인터의 브라우저 표시 영역에서의 위치
pageX, pageY 마우스 커서의 문서 영역에서의 위치
offsetX, offsetY 마우스 포인터의 이벤트 발생한 요소에서의 위치
screenX, screenY 마우스 포인터의 모니터 화면 영역에서의 위치

 

4. MouseEvent.relatedTarget

mouseenter, mouseleave, mouseover, mouseout 이벤트에는 relatedTarget이라는 프로퍼티가 존재한다.

target 프로퍼티가 이벤트가 발생한 요소를 담고 있다면, relatedTarget 프로퍼티는 이벤트가 발생하기 직전(또는 직후)에 마우스가 위치해 있던 요소를 담고 있습니다.

mousevoer일 때는 relatedTarget이 이동 직전 요소를 가르키고, mouseout은 이동 직후 요소를 가르킨다.
즉 body에서 div로 마우스를 옮길 때 mouseover 로 확인하면 target은 div이고 relatedTarget은 body이다.
반대로 mouseout을 통해 div에서 body로 이동한다면 target은 div이고 relatedTarget은 body 이다.


Keyboard Event

 

1. KeyboardEvent.type

이벤트 타입 설명
keydown 키보드의 버튼을 누르는 순간
keypress 키보드의 버튼을 누르는 순간 ('a', '5' 등 출력이 가능한 키에서만 동작하며, Shift, Esc등의 키에는 반응하지 않음)
keyup 키보드의 버튼을 눌렀다 떼는 순간

 

2. KeyboardEvent.key 와 KeyboardEvent.code

key는 사용자가 누른 키가 가지고 있는 값을 나타내고 code는 누른 키의 물리적인 위치를 나타냅니다.

Shift를 눌렀을 때 key와 code의 차이는 왼쪽에 있는 shift키를 눌렀을 경우에
code : ShiftLeft key : Shift 이고, 오른쪽 shift키를 누른다면
code : ShiftRight key : Shift 로, 서로 다른 값을 가진다.
그래서 좀 더 확장성 있게 누르는 키의 값만 사용한다면 key를 사용하고, 하나의 동작을 할 때 세밀하게 딱 그곳에 위치한 키만 누르게 하려면 code 값을 사용하는 것이 좋다!

3. input 태그 이벤트 타입

이벤트 타입 설명
focusin 요소에 포커스가 되는 순간
focusout 요소에 포커스가 빠져나가는 순간
focus 요소에 포커스가 되는 순간 (버블링이 일어나지 않음)
blur 요소에 포커스가 빠져나가는 순간 (버블링이 일어나지 않음)
change 입력된 값이 바뀌는 순간
input 값이 입력되는 순간
select 입력 양식의 하나가 선택되는 순간
submit 폼을 전송하는 순간
반응형

'Study > JavaScript' 카테고리의 다른 글

[ Node.js ] crypto를 사용하여 비밀번호 암호화 하기  (0) 2022.02.24
[ Node.js ] readFile, readFileSync 함수 알아보기  (0) 2022.02.20
[ JS ] DOM에 대한 총 정리!  (0) 2022.02.08
[ JS ] JS의 TDZ란 무엇일까?  (0) 2022.02.08
[ JS ] 일반 함수와 익명 함수의 차이에 대해 알아보자!  (0) 2022.02.08
    'Study/JavaScript' 카테고리의 다른 글
    • [ Node.js ] crypto를 사용하여 비밀번호 암호화 하기
    • [ Node.js ] readFile, readFileSync 함수 알아보기
    • [ JS ] DOM에 대한 총 정리!
    • [ JS ] JS의 TDZ란 무엇일까?
    SoShin_
    SoShin_
    직접 쓰는 개발 블로그

    티스토리툴바