이벤트 참조 | MDN
DOM 이벤트는 발생한 흥미로운 것을 코드에 알리기 위해 전달됩니다. 각 이벤트는 Event 인터페이스를 기반으로한 객체에 의해 표현되며 발생한 것에 대한 부가적인 정보를 얻는데 사용되는 추가
developer.mozilla.org
마우스 이벤트 | 이벤트명발생하는 시점 |
mouseenter (en-US) | 포인팅 장치가 리스너가 등록된 엘리먼트 위로 이동했을 때. |
mouseover (en-US) | 포인팅 장치가 리스너가 등록된 엘리먼트나 그 자식 엘리먼트의 위로 이동했을 때. |
mousemove (en-US) | 포인팅 장치가 엘리먼트 위에서 이동했을 때(마우스가 이동하는동안 계속 실행됨.) |
mousedown (en-US) | 포인팅 장치 버튼이 엘리먼트 위에서 눌렸을 때. |
mouseup (en-US) | 포인팅 장치 버튼이 엘리먼트 위에서 놓였을 때. |
auxclick | 포인팅 장치 버튼(주가 아닌 버튼)이 엘리먼트에서 눌렸다가 놓였을 때. |
click | 포인팅 장치 버튼(모든 버튼; 주 버튼만 해당될 예정)이 엘리먼트에서 눌렸다가 놓였을 때. |
dblclick (en-US) | 포인팅 장치 버튼이 엘리먼트에서 두 번 클릭되었을 때. |
contextmenu (en-US) | 마우스의 오른쪽 버튼이 클릭되었을 때(컨텍스트 메뉴가 표시되기 전). |
wheel (en-US) | 포인팅 장치의 휠 버튼이 어떤 방향이든 회전되었을 때. |
mouseleave (en-US) | 포인팅 장치가 리스너가 등록된 엘리먼트 밖으로 이동했을 때. |
mouseout (en-US) | 포인팅 장치가 리스너가 등록된 엘리먼트 또는 그 자식 엘리먼트의 밖으로 이동했을 때. |
select (en-US) | 어떤 텍스트가 선택되고 있을 때. |
pointerlockchange (en-US) | 포인터가 잠겼거나 해제되었을 때. |
pointerlockerror (en-US) | 기술적인 이유나 권한 거절을 이유로 포인터 잠금이 불가했을 때. |
포인트 장치 : 마우스 , 터치패드 등을 말한다.
See the Pen Untitled by Tae (@Tae54) on CodePen.
1번째 상자는 마우스를 클릭하거나 영역 안에서 움직일 때 이벤트를 처리한다.
2번째와 3번째 상자의 차이는 상자의 테두리에 마우스를 가져다 대면 알 수 있다.
옅은 색의 상자의 테두리가 안의 짙은 색의 부모요소로
3번째 상자는 mouseover/mouseout은 부모 요소도 포함하여 이벤트 처리하는데 반해
2번째 상자에서 쓰인 mouseenter/mouseleave은 안의 자식 요소에서만 이벤트를 처리한다.
1. 마우스 왼쪽을 누르고 있을 때
const logArea = document.querySelector('#log2');
logArea.addEventListener('mousedown',()=>{
logArea.innerHTML = `클릭 버튼을 누르고 있어!`;
});
이벤트 타입으로 'mousedown'이 사용되었다.
타겟 : document.querySelector('#log2')
값 : div#log2 안의 문자열 생성 `문자열`
결과 : 요소의 값이 사용자에게 입력받은 결과값으로 변경된다.
이 외에도 다양한 마우스 조작에 따라 다양한 처리를 할 수 있다.
2. 마우스 위치에 따른 조작하기
마우스의 위치를 가져올 수 있는 속성은 client / offset / page / screen 이 있고 각각 X좌표(맨 왼쪽이 0) Y좌표(맨 위가 0) 두가지로 나타낼 수 있다.
See the Pen Untitled by Tae (@Tae54) on CodePen.
function moving(event1) {
character.style.left = `${event1.clientX - 100}px`;
character.style.top = `${event1.clientY - 100}px`;
}
클래스 이름이 character인 html 요소를 브라우저 기준의 마우스 좌표를 가져와 css속성에서 x좌표와 y좌표를 변경해준다.
사자가 마우스 조작으로 움직일 수 있다.
'WEB > Javascript' 카테고리의 다른 글
[JS] 이벤트 발생 / 작동해지 - dispatchEvent( new Event()) / preventDefault() (0) | 2022.07.05 |
---|---|
[JS] 이벤트 처리 - Viewport 에 따른 사이즈 변경 (0) | 2022.07.04 |
[JS] Window - addEventListener 이벤트 처리하기 (0) | 2022.07.04 |
[JS] Window - 안내메세지 / 확인메세지 / 입력메세지 띄우기 (0) | 2022.07.03 |
[JS] 브라우저 DOM (0) | 2022.07.01 |