UI ì´ë²¤í¸ APIë ë§ì°ì¤ ë° í¤ë³´ë ì ë ¥ê³¼ ê°ì ì¬ì©ì ìí¸ ìì©ì ì²ë¦¬í기 ìí ìì¤í ì ì ìí©ëë¤. ì¬ê¸°ìë ë¤ìì´ í¬í¨ë©ëë¤.
Element
ì¸í°íì´ì¤ìì ë°ìíì§ë§, 리ìì¤ ë¡ë© ë° ì¸ë¡ë©ê³¼ ê´ë ¨ë ì´ë²¤í¸ë Window
ì¸í°íì´ì¤ìì ë°ìí©ëë¤.Event
를 ììë°ê³ ì¬ì©ì ìí¸ ìì© ì íì í¹íë ì¶ê° ì 보를 ì ê³µí©ëë¤. ì를 ë¤ì´, KeyboardEvent
ë keydown
ì´ë²¤í¸ í¸ë¤ë¬ì ì ë¬ëì´ ë른 í¤ì ëí ì 보를 ì ê³µí©ëë¤.CompositionEvent
ì¡°í© ì´ë²¤í¸ì í¸ë¤ë¬ì ì ë¬ë©ëë¤. ì¡°í© ì´ë²¤í¸ë ì¬ì©ìê° ë¬¼ë¦¬ì í¤ë³´ëìì ì¬ì©í ì ìë 문ì를 ì ë ¥í ì ìê² í´ì¤ëë¤.
FocusEvent
ììê° í¬ì»¤ì¤ë¥¼ ë°ê±°ë ìë ê²ê³¼ ê´ë ¨ë í¬ì»¤ì¤ ì´ë²¤í¸ì í¸ë¤ë¬ì ì ë¬ë©ëë¤.
InputEvent
ì¬ì©ìê° ì
ë ¥ì íë ê²ê³¼ ê´ë ¨ë ì
ë ¥ ì´ë²¤í¸ì í¸ë¤ë¬ì ì ë¬ë©ëë¤. ì를 ë¤ì´, <input>
ìì를 ì¬ì©í ëì
ëë¤.
KeyboardEvent
í¤ë³´ë up/down ì´ë²¤í¸ì í¸ë¤ë¬ì ì ë¬ë©ëë¤.
MouseEvent
ë§ì°ì¤ ì´ë, ë§ì°ì¤ ì¤ë² ë° ìì, ë§ì°ì¤ ë²í¼ ì
ëë ë¤ì´ì í¬í¨í ë§ì°ì¤ ì´ë²¤í¸ì ì´ë²¤í¸ í¸ë¤ë¬ì ì ë¬ë©ëë¤. auxclick
, click
, ë° dblclick
ì´ë²¤í¸ë PointerEvent
ê°ì²´ë¥¼ ì ë¬ë°ìµëë¤.
MouseScrollEvent
ì§ìì´ ì¤ë¨ëììµëë¤
ì¤í¬ë¡¤ ì´ë²¤í¸ë¥¼ ìí ë ì´ì ì¬ì©ëì§ ìë Firefox ì ì©ì ë¹íì¤ ì¸í°íì´ì¤ì
ëë¤. ëì WheelEvent
를 ì¬ì©íì¸ì.
MutationEvent
ì§ìì´ ì¤ë¨ëììµëë¤
DOM ë³ê²½ ì¬íì ëí ì림ì ì ê³µíëë¡ ì¤ê³ë ë³ê²½ ì´ë²¤í¸ í¸ë¤ë¬ì ì ë¬ë©ëë¤. íì¬ë ë ì´ì ì¬ì©ëì§ ììµëë¤. ëì MutationObserver
를 ì¬ì©íì¸ì.
UIEvent
ë¤ë¥¸ UI ì´ë²¤í¸ê° ììë°ë 기본 ì¸í°íì´ì¤ì´ë©°, load
ì unload
ì ê°ì ì¼ë¶ ì´ë²¤í¸ì ì ë¬ëë ì´ë²¤í¸ ì¸í°íì´ì¤ì´ê¸°ë í©ëë¤.
WheelEvent
ì¬ì©ìê° ë§ì°ì¤ í ì´ë í°ì¹í¨ëì ê°ì ì ì¬í ì¬ì©ì ì¸í°íì´ì¤ ì»´í¬ëí¸ë¥¼ íì ìí¬ ë ë°ìíë wheel
ì´ë²¤í¸ì í¸ë¤ë¬ì ì ë¬ë©ëë¤.
abort
리ìì¤ ë¡ë©ì´ ì¤ë¨ëìì ë ë°ìí©ëë¤(ì: ì¬ì©ìê° ì·¨ìí ê²½ì°).
auxclick
ì¬ì©ìê° ì£¼ í¬ì¸í° ë²í¼ì´ ìë ë¤ë¥¸ ë²í¼ì í´ë¦íì ë ë°ìí©ëë¤.
beforeinput
DOMì´ ì¬ì©ì ì ë ¥ì¼ë¡ ì ë°ì´í¸ë기 ì§ì ì ë°ìí©ëë¤.
blur
ììê° í¬ì»¤ì¤ë¥¼ ììì ë ë°ìí©ëë¤.
click
ì¬ì©ìê° ì£¼ í¬ì¸í° ë²í¼ì í´ë¦íì ë ë°ìí©ëë¤.
compositionend
í ì¤í¸ ì¡°í© ìì¤í (ì: ìì±-í ì¤í¸ ë³í기)ì´ ì¸ì ì ì¢ ë£íì ë ë°ìí©ëë¤. ì를 ë¤ì´, ì¬ì©ìê° ì´ë¥¼ ë«ìì ëì ëë¤.
compositionstart
ì¬ì©ìê° í ì¤í¸ ì¡°í© ìì¤í ê³¼ ì ì¸ì ì ììíì ë ë°ìí©ëë¤.
compositionupdate
í
ì¤í¸ ì¡°í© ìì¤í
ì´ ì 문ìë¡ í
ì¤í¸ë¥¼ ì
ë°ì´í¸í ë ë°ìíë©°, CompositionEvent
ì data
ìì± ì
ë°ì´í¸ì ë°ìë©ëë¤.
컨í ì¤í¸ ë©ë´ê° í¸ì¶ë기 ì§ì ì ë°ìí©ëë¤.
dblclick
ì¬ì©ìê° ì£¼ í¬ì¸í° ë²í¼ì ëë¸ í´ë¦íì ë ë°ìí©ëë¤.
error
리ìì¤ ë¡ë©ì ì¤í¨íê±°ë ì²ë¦¬í ì ìì ë ë°ìí©ëë¤(ì: ì´ë¯¸ì§ê° ì못ëìê±°ë ì¤í¬ë¦½í¸ì ì¤ë¥ê° ìë ê²½ì°).
focus
ììê° í¬ì»¤ì¤ë¥¼ ë°ìì ë ë°ìí©ëë¤.
focusin
ììê° í¬ì»¤ì¤ë¥¼ ë°ê¸° ì§ì ì ë°ìí©ëë¤.
focusout
ììê° í¬ì»¤ì¤ë¥¼ ì기 ì§ì ì ë°ìí©ëë¤.
input
DOMì´ ì¬ì©ì ì ë ¥ì¼ë¡ ì ë°ì´í¸ë ì§íì ë°ìí©ëë¤(ì: ì¼ë¶ í ì¤í¸ ì ë ¥).
keydown
ì¬ì©ìê° í¤ë¥¼ ëë ì ë ë°ìí©ëë¤.
keypress
ì§ìì´ ì¤ë¨ëììµëë¤
ì¬ì©ìê° í¤ë¥¼ ëë ì ë ë°ìíì§ë§, í¤ê° 문ì ê°ì ìì±íë ê²½ì°ìë§ ë°ìí©ëë¤. ëì keydown
ì ì¬ì©íì¸ì.
keyup
ì¬ì©ìê° í¤ë¥¼ ëìì ë ë°ìí©ëë¤.
load
ì ì²´ íì´ì§ê° ë¡ëëìì ë ë°ìí©ëë¤. ì¤íì¼ìí¸ì ì´ë¯¸ì§ ê°ì 모ë ì¢ ì 리ìì¤ë¥¼ í¬í¨í©ëë¤.
mousedown
í¬ì¸í°ê° ìì ìì ìë ëì ì¬ì©ìê° ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ì ë²í¼ì ëë ì ë ë°ìí©ëë¤.
mouseenter
ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ê° ììë ê·¸ ìì ì¤ íëì ê²½ê³ ìì¼ë¡ ì´ëíì ë ë°ìí©ëë¤.
mouseleave
ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ê° ììì ê·¸ 모ë ììì ê²½ê³ ë°ì¼ë¡ ì´ëíì ë ë°ìí©ëë¤.
mousemove
ìì ììì ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ê° ì´ëí ë ë°ìí©ëë¤.
mouseout
ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ê° ììì ê²½ê³ ë°ì¼ë¡ ì´ëíì ë ë°ìí©ëë¤.
mouseover
ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ê° ìì ìë¡ ì´ëíì ë ë°ìí©ëë¤.
mouseup
í¬ì¸í°ê° ìì ìì ìë ëì ì¬ì©ìê° ë§ì°ì¤ë ë¤ë¥¸ í¬ì¸í ì¥ì¹ì ë²í¼ì ëìì ë ë°ìí©ëë¤.
unload
문ìë ìì 리ìì¤ê° ì¸ë¡ëë ë ë°ìí©ëë¤.
wheel
ì¬ì©ìê° ë§ì°ì¤ í ì´ë í°ì¹í¨ëì ê°ì ì ì¬í ì¬ì©ì ì¸í°íì´ì¤ ì»´í¬ëí¸ë¥¼ íì ìí¬ ë ë°ìí©ëë¤.
ì´ ìì ë ì´ë²¤í¸ê° ìì±ë Xì Y ì¢íì í¨ê» ë§ì°ì¤ ì´ë²¤í¸ë¥¼ 기ë¡í©ëë¤. ë ¸ëìê³¼ 빨ê°ì ì¬ê°í ìì¼ë¡ ë§ì°ì¤ë¥¼ ì´ëíê³ , í´ë¦íê±°ë ëë¸ í´ë¦í´ ë³´ì¸ì.
HTML<div id="outer">
<div id="inner"></div>
</div>
<div id="log">
<pre id="contents"></pre>
<button id="clear">ë¡ê·¸ ì§ì°ê¸°</button>
</div>
CSS
body {
display: flex;
gap: 1rem;
}
#outer {
height: 200px;
width: 200px;
display: flex;
justify-content: center;
align-items: center;
background-color: yellow;
}
#inner {
height: 100px;
width: 100px;
background-color: red;
}
#contents {
height: 150px;
width: 250px;
border: 1px solid black;
padding: 0.5rem;
overflow: scroll;
}
JavaScript
const outer = document.querySelector("#outer");
const inner = document.querySelector("#inner");
const contents = document.querySelector("#contents");
const clear = document.querySelector("#clear");
let lines = 0;
outer.addEventListener("click", (event) => {
log(event);
});
outer.addEventListener("dblclick", (event) => {
log(event);
});
outer.addEventListener("mouseover", (event) => {
log(event);
});
outer.addEventListener("mouseout", (event) => {
log(event);
});
outer.addEventListener("mouseenter", (event) => {
log(event);
});
outer.addEventListener("mouseleave", (event) => {
log(event);
});
function log(event) {
const prefix = `${String(lines++).padStart(3, "0")}: `;
const line = `${event.type}(${event.clientX}, ${event.clientY})`;
contents.textContent = `${contents.textContent}${prefix}${line}\n`;
contents.scrollTop = contents.scrollHeight;
}
clear.addEventListener("click", () => {
contents.textContent = "";
lines = 0;
});
ê²°ê³¼ í¤ë³´ë ë° ì
ë ¥ ì´ë²¤í¸
ì´ ìì ë keydown
, beforeinput
, ê·¸ë¦¬ê³ input
ì´ë²¤í¸ë¥¼ 기ë¡í©ëë¤. í
ì¤í¸ ììì ì
ë ¥í´ ë³´ì¸ì. Shiftì ê°ì í¤ë keydown
ì´ë²¤í¸ë ìì±íì§ë§ input
ì´ë²¤í¸ë ìì±íì§ ìëë¤ë ì ì 주목íì¸ì.
<textarea id="story" rows="5" cols="33"></textarea>
<div id="log">
<pre id="contents">
<button id="clear">ë¡ê·¸ ì§ì°ê¸°</button>
</div>
CSS
body {
display: flex;
gap: 1rem;
}
#story {
padding: 0.5rem;
}
#contents {
height: 150px;
width: 250px;
border: 1px solid black;
padding: 0.5rem;
overflow: scroll;
}
JavaScript
const story = document.querySelector("#story");
const contents = document.querySelector("#contents");
const clear = document.querySelector("#clear");
let lines = 0;
story.addEventListener("keydown", (event) => {
log(`${event.type}(${event.key})`);
});
story.addEventListener("beforeinput", (event) => {
log(`${event.type}(${event.data})`);
});
story.addEventListener("input", (event) => {
log(`${event.type}(${event.data})`);
});
function log(line) {
const prefix = `${String(lines++).padStart(3, "0")}: `;
contents.textContent = `${contents.textContent}${prefix}${line}\n`;
contents.scrollTop = contents.scrollHeight;
}
clear.addEventListener("click", () => {
contents.textContent = "";
lines = 0;
});
ê²°ê³¼ ëª
ì¸ì ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4