document를 활용하면 많은 이벤트들을 다룰 수 있다.
간단한 예시를 통해 살펴보고, 원하는 이벤트를 찾는 방법에 대해서도 알아본다.
1) addEventListener
const title = document.querySelector(".container__contents");
function handTitleClick() {
title.style.color = "tomato";
}
title.addEventListener("click", handTitleClick);
위 자바스크립트 코드를 활용하여 이벤트를 만들었다.
document 및 querySelector로 불러온 객체를 활용하여 이벤트 및 함수를 다룬다.
addEventListener 의 두 번째 파라미터에 함수명이 있는데, 원래 그 안에서 함수를 정의하여 사용하는 방법도 있지만
깔끔하게 나누기 위해 외부에 따로 정의했다.
2) Event 찾는 방법
1. MDN
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement#events
HTMLElement - Web APIs | MDN
The HTMLElement interface represents any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it.
developer.mozilla.org
위 사이트에 접속하고,
각각의 page를 눌러보며 원하는 이벤트를 포함하여 다양한 객체들을 찾을 수 있다.
2. console.dir
console.dir(document)
위 코드를 콘솔창에 입력한다.
(또는, querySelector 등으로 찾은 객체를 넣어도 됨)
document 객체를 살펴보면,
앞에 on 이라고 붙어 있는 모든 것들이 Event 이다.
click, mouseleave, mouseenter 등, 아주 다양한 것들이 존재한다.
필요한 이벤트를 찾아서 사용하면 된다.
3) Window
위의 예시는 사용자가 Web Element에 관해 무언가를 할 때 발생하는 이벤트였지만, 브라우저 자체에 대한 이벤트도 존재한다.
https://developer.mozilla.org/en-US/docs/Web/API/Window
Window - Web APIs | MDN
The Window interface represents a window containing a DOM document; the document property points to the DOM document loaded in that window.
developer.mozilla.org
Window의 Event 중 하나인 resize를 예시로 실습해본다.
창의 크기를 줄였더니 배경색이 변했다.
해당 코드는 아래와 같다.
function handleWindowResize() {
document.body.style.backgroundColor = "tomato";
}
window.addEventListener("resize", handleWindowResize);
추가로, body나 head, title 과 같은 태그들은 document를 통해 바로 접근할 수 있다.
그 외의 태그들은 querySelector와 같은 메서드를 통해서만 접근 가능하다.
참고)
https://developer.mozilla.org/ko/docs/Web/API/EventTarget/addEventListener
https://nomadcoders.co/javascript-for-beginners/lectures/2894
https://developer.mozilla.org/en-US/docs/Web/API/Window
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement#events
'Front-end > JavaScript' 카테고리의 다른 글
JS) [Alert] 웹 사이트에 경고 문구 띄우기 (0) | 2022.10.15 |
---|---|
JS) [Backtick] 템플릿 리터럴 ... 문자열과 변수를 같이 사용하기 (0) | 2022.10.15 |
JS) [CSS in JS] 자바스크립트에서 CSS 사용하기 (0) | 2022.10.14 |
JS) [querySelector] document object를 통한 elements 접근 (0) | 2022.10.12 |
JS) 자바스크립트(JavaScript) 기초 문법 간단 요약 (0) | 2022.10.11 |