1. Event Handler ํ ๋นํ๊ธฐ
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<button onclick = "alert('ํด๋ฆญํ์ต๋๋ค')"> ํด๋ฆญ </button>
</body>
DOM Events
HTML DOM Event Object
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
: Event์ ์์ฑ๋ค์ด ์๋ค. ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ์ดํด๋ณด๋ฉด ์ข๋ค.
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<button onclick="alert('ํด๋ฆญํ์ต๋๋ค')">ํด๋ฆญ</button>
<button onclick="sayHello()">ํด๋ฆญ2</button>
<button id="btn">ํด๋ฆญ3</button>
<button id="btn2">ํด๋ฆญ4</button>
<script>
function sayHello() {
alert("Hello"); //๊ดํธ๊ฐ ์์ด์ผํ๋ค. ๊ดํธ๊ฐ ์์ผ๋ฉด ํจ์์ ๋ฐํ๊ฐ์ด ํ ๋น๋๊ธฐ ๋๋ฌธ.
}
const el = document.getElementById("btn");
el.onclick = sayHello
const el2 = document.getElementById("btn2");
el2.addEventListener("click", sayHello); //addEventListener: ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋ค๋ฌ(์ ๋ฌ๋ ํจ์)๋ฅผ ์คํํ๋ค.
</script>
</body>
</html>
์์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
ํด๋ฆญ, ํด๋ฆญ2, ํด๋ฆญ3, ํด๋ฆญ4๋ฅผ ๋ณด๋ฉด ๊ฐ์ ๋ค๋ฅธ ๋ฐฉ์์ button event ์ฝ๋๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
addEventListener
- :ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋ค๋ฌ(์ ๋ฌ๋ ํจ์)๋ฅผ ์คํํ๋ค.
- Handler๋ ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค
el2.addEventListener("click", sayHello);
sayHello ์๋ฆฌ์ ์ง์ ์ ๋ฌํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
el2.addEventListener("click", () => {
alert("hi");
});
๊ฒฐ๊ณผ
+ removeEventListener
: ์ด๋ฏธ ํ ๋น๋ ์ด๋ฒคํธ๋ฅผ ์ง์ธ ๋ ์ฌ์ฉํ๋ค.
focus์ blur
- focus: ์ ๋ ฅ์ฐฝ์ ๋ง์ฐ์ค๋ฅผ ๋๋ ์ ๋ ๋ฐ์
- blur: focus ์์ ๋
โ๏ธ์ ๋ ฅ
input.addEventListener("focus", () => {
input.style.backgroundColor = "rgba(255,-0,0,0.2)";
});
input.addEventListener("blur", () => {
input.style.backgroundColor = null; // null: ์ด๊ธฐํ์ํจ๋ค
});
๐๊ฒฐ๊ณผ
- ์ ๋ ฅ์ฐฝ ํด๋ฆญ์ ์ค์ ํ rgb๊ฐ์ ์์ด ๋ณด์ฌ์ง๊ณ , ํฌ์ฟ ์ค๋ฅผ ๋ผ๋ฉด ์ด๊ธฐํ์ํจ๋ค.
mousemove
- ๋ง์ฐ์ค๋ฅผ ์์ง์์๋๋ง๋ค ์ด๋ฒคํธ ๋ฐ์
โ๏ธ์ ๋ ฅ
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<div
id="box"
style="width: 100px; height: 100px; border: 2px solod red"
></div>
<script>
const box = document.getElementById("box");
box.addEventListener("mousemove", event => {
console.log(event);
});
</script>
</body>
</html>
๐๊ฒฐ๊ณผ
: ์ด ๋ค๋ชจ๋ฐ์ค ์์์ ๋ง์ฐ์ค๋ฅผ ์์ง์ผ ๋๋ง๋ค console์์ ๋ง์ฐ์ค์ ์์น๊ฐ์ด ๊ณ์ ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
: ์ ์๋ณด์ด๊ฒ ์ง๋ง..
clientX: 54
clientY: 111 ์ด๋ผ๊ณ ์ ํ์๋ค.
์ด๊ฒ์ ํตํด ํ์ฌ ๋ง์ฐ์ค ํฌ์ธํฐ์ ์์น๋ฅผ ์ ์ ์๋ค.
โจ์ฌํ) ์ปค์๋ฅผ ๋ฐ๋ผ๋ค๋๋ ๋๊ทธ๋ผ๋ฏธ ๋ง๋๋ ๋ฐฉ๋ฒ
โ๏ธ์ ๋ ฅ
- ์ฒ์ฒํ ๋ฐ๋ผํ๋ฉด์ ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<div
id="box"
style="
position: relative;
width: 100px;
height: 100px;
border: 2px solid red
"
>
<div
id="circle"
style="
position: absolute;
width: 10px;
height: 10px;
background-color: #000;
border-radius: 50%;
"
></div>
<script>
const box = document.getElementById("box");
box.addEventListener("mousemove", event => {
circle.style.top = `${event.clientY}px`;
circle.style.left = `${event.clientX}px`;
});
</script>
</body>
</html>
</script>
</body>
</html>
๐๊ฒฐ๊ณผ
- ์ปค์๊ฐ ๋ค๋ชจ ๋ฐ์ค ์์ ์์๋ ๋ง์ฐ์ค์ค๋ฒ์, ๊ฒ์ ์ ์์ด ์ปค์๋ฅผ ๋ฐ๋ผ๋ค๋๋ค.
- ๋ง์ฐ์ค๊ฐ ์์ง์ผ๋๋ง๋ค ์์ top๊ณผ left์ ๊ฐ์ด ๋ฐ๋๋ค.
resize
- ์ฐฝ ํฌ๊ธฐ๊ฐ ๋ฐ๋๋๋ง๋ค, ๋์ด์ ๋์ด๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
โ๏ธ์ ๋ ฅ
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<script>
window.addEventListener("resize", () => {
document.body.innerText = `ํ์ฌ ์ฐฝ ํฌ๊ธฐ๋ ${window.
innerWidth} x ${window.innerHeight}`;
});
</script>
</body>
</html>
</script>
</body>
</html>
๐๊ฒฐ๊ณผ
์ด๋ฒคํธ type์ ์๋นํ ๋ง๋ค.
๊ด๋ จ๋ type๋ค์ ์ฌ์ฉํด๋ณด๋ฉด์ ์ด๋ค ๊ธฐ๋ฅ์ธ์ง ์ฐ์ต์ ํด๋ณด๊ธฐ๋ฅผ ๊ถํ๋ค.
์์ฃผ ์ฐ๋ EVENT type | |
click | ํด๋ฆญ ์ ์ด๋ฒคํธ ๋ฐ์. |
dblclick | ๋๋ธํด๋ฆญ ์ ์ด๋ฒคํธ ๋ฐ์. |
keydown | ํค๋ณด๋๋ฅผ ๋์ ๋ ์ด๋ฒคํธ ๋ฐ์ |
keyup | ํค๋ณด๋๋ฅผ ์ ๋ ฅํ์ ๋ ์ด๋ฒคํธ ๋ฐ์ |
focus // inputํ๊ทธ์์ฑ | ์ ๋ ฅ์ฐฝ์ ๋ง์ฐ์ค๋ฅผ ๋๋ ์ ๋ ๋ฐ์ |
focusin // inputํ๊ทธ์์ฑ | |
blur // inputํ๊ทธ์์ฑ | focus๋ฅผ ์์ ๋ ์ด๋ฒคํธ ๋ฐ์ |
focusout/ / inputํ๊ทธ์์ฑ | |
mousemove | ๋ง์ฐ์ค๋ฅผ ์์ง์ผ๋๋ง๋ค ์ด๋ฒคํธ ๋ฐ์ |
resize | ์ฐฝ ํฌ๊ธฐ๊ฐ ๋ฐ๋ ๋๋ง๋ค, ๋๋น์ ๋์ด๊ฐ์ ์ ๋ฐ์ดํธ ํด์ค๋ค |
'๐Development > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] DOM & EVENT #6 ์ด๋ฒคํธ ๋ฒ๋ธ๋ง, ์ด๋ฒคํธ ์์ (0) | 2023.03.27 |
---|---|
[JS] DOM์ด๋? #4 CSS style, class ์ ์ด (0) | 2023.03.26 |
[JS] DOM์ด๋? #3 ๋ ธ๋ ์์ฑ,์ถ๊ฐ,๋ณต์ ,์ญ์ (0) | 2023.03.26 |
[JS] DOM์ด๋? #2 ๋ถ๋ชจ, ์์, ํ์ Node (0) | 2023.03.26 |
[JS] DOM์ด๋? #1 Node์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ (0) | 2023.03.26 |