2021. 10. 29. 16:02ใHTML + CSS + JS/JS ์๋ฐ์คํฌ๋ฆฝํธ
1. ์ด๋ฒคํธ ๊ฐ์ฒด์ ์ข ๋ฅ
์ฌ์ฉ์๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํฌ๋ ๋ง๋ค ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๋งค๊ฐ๋ณ์์๋ ์ด๋ฒคํธ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉฐ, ์ด๋ฒคํธ ๊ฐ์ฒด์๋ ์ด๋ฒคํธ ํ์ ์ ๋ง๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์๋ค.
$("์ด๋ฒคํธ ๋์ ์ ํ").mousemove(function(๋งค๊ฐ๋ณ์) {
๋งค๊ฐ๋ณ์(์ด๋ฒคํธ ๊ฐ์ฒด).์์ฑ;
});
- ์ด๋ฒคํธ ๊ฐ์ฒด์ ์์ฑ ์ข ๋ฅ
1๏ธโฃ ๋ง์ฐ์ค ์ด๋ฒคํธ
clientX ๋ง์ฐ์ค ํฌ์ธํฐ x ์ขํฏ๊ฐ ๋ฐํ (์คํฌ๋กค ์ด๋๊ฑฐ๋ฆฌ ๋ฌด์)
clientY ๋ง์ฐ์ค ํฌ์ธํฐ y ์ขํฏ๊ฐ ๋ฐํ (์คํฌ๋กค ์ด๋๊ฑฐ๋ฆฌ ๋ฌด์)
pageX ์คํฌ๋กค x ์ถ์ ์ด๋ํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ์ฌ ๋ง์ฐ์ค ํฌ์ธํฐ์ x ์ขํฏ๊ฐ์ ๋ฐํ
pageY ์คํฌ๋กค y ์ถ์ ์ด๋ํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ์ฌ ๋ง์ฐ์ค ํฌ์ธํฐ์ y ์ขํฏ๊ฐ์ ๋ฐํ
screenX ํ๋ฉด ๋ชจ๋ํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง์ฐ์ค ํฌ์ธํฐ์ x ์ขํฏ๊ฐ ๋ฐํ
screenY ํ๋ฉด ๋ชจ๋ํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง์ฐ์ค ํฌ์ธํฐ์ y ์ขํฏ๊ฐ ๋ฐํ
layerX position์ ์ ์ฉํ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง์ฐ์ค ํฌ์ธํฐ์ x ์ขํฏ๊ฐ ๋ฐํ
layerY position์ ์ ์ฉํ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง์ฐ์ค ํฌ์ธํฐ์ y ์ขํฏ๊ฐ ๋ฐํ
button ๋ง์ฐ์ค ๋ฒํผ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๊ฐ์ ๋ฐํ
2๏ธโฃ ํค๋ณด๋ ์ด๋ฒคํธ
keyCode ํค๋ณด๋ ์์คํค ์ฝ๋๊ฐ์ ๋ฐํ
altKey ์ด๋ฒคํธ ๋ฐ์ ์ altํค๋ฅผ ๋๋ ์ผ๋ฉด true ๋ฐํ ์๋๋ฉด false ๋ฐํ
ctrlKey ์ด๋ฒคํธ ๋ฐ์ ์ ctrl ํค๋ฅผ ๋๋ ์ผ๋ฉด true ๋ฐํ ์๋๋ฉด false ๋ฐํ
shiftKey ์ด๋ฒคํธ ๋ฐ์์ shift ํค๋ฅผ ๋๋ ์ผ๋ฉด true ๋ฐํ ์๋๋ฉด false ๋ฐํ
3๏ธโฃ ์ ์ฒด ์ด๋ฒคํธ
target ์ด๋ฒคํธ๊ฐ ์ ํ๋ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฅดํจ๋ค.
cancelBubble ์ด๋ฒคํธ์ ์ ํ๋ฅผ ์ฐจ๋จํ๋ ์์ฑ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ false ์ด๋ฉฐ true๋ก ์ค์ ํ๋ฉด ์ ํ๊ฐ ์ฐจ๋จ๋๋ค.
stopPropagation() ์ด๋ฒคํธ์ ์ ํ๋ฅผ ์ฐจ๋จํ๋ค.
preventionDefault() ๊ธฐ๋ณธ ์ด๋ฒคํธ๋ฅผ ์ฐจ๋จํ๋ค.
2. scroll() ์ด๋ฒคํธ ๋ฉ์๋
scroll() ์ด๋ฒคํธ ๋ฉ์๋๋ ๋์ ์์์ ์คํฌ๋กค๋ฐ๊ฐ ์ด๋ํ ๋ ๋ง๋ค ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ฑฐ๋ ๊ฐ์ ๋ก scroll ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋๋ฐ ์ฌ์ฉํ๋ค.
$("์ด๋ฒคํธ ๋์์ ํ").scroll(function () {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("scroll", function() { ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").scroll();
3. ํฌ์ปค์ค ์ด๋ฒคํธ
ํฌ์ปค์ค๋ ๋ง์ฐ์ค๋ก <a> ๋๋ <input> ํ๊ทธ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ tabํค๋ฅผ ๋๋ฅด๋ฉด ์์ฑ๋๋ค.
ํค๋ณด๋ ์ ๊ทผ์ฑ์ ๋์ด๊ธฐ ์ํด์๋ ๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ ๋ ๋ ์ ์์ผ๋ฉด <a> ๋๋ <input> ํ๊ทธ์ ๋ฑ๋กํ๊ณ , ํค๋ณด๋๊ฐ ์์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ง์ฐ์ค ์ด๋ฒคํธ์ ๋์ํ ์ ์๋ ํค๋ณด๋ ์ด๋ฒคํธ๊ฐ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
1๏ธโฃ focus()/ blur() / focusin()/ focusout() ์ด๋ฒคํธ ๋ฉ์๋
focus() ์ด๋ฒคํธ ๋ฉ์๋ : ๋์ ์์๋ก ํฌ์ปค์ค๊ฐ ์ด๋ํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
blur() ์ด๋ฒคํธ ๋ฉ์๋ : ํฌ์ปค์ค๊ฐ ๋์ ์์์์ ๋ค๋ฅธ ์์๋ก ์ด๋ํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
focusin() ์ด๋ฒคํธ ๋ฉ์๋ : ๋์ ์์์ ํ์ ์์ ์ค ์ ๋ ฅ ์์๋ก ํฌ์ปค์ค๊ฐ ์ด๋ํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
focusout() ์ด๋ฒคํธ ๋ฉ์๋ : ๋์ ์์์ ํ์ ์์ ์ค ์ ๋ ฅ ์์์์ ์ธ๋ถ ์์๋ก ํฌ์ปค์ค๊ฐ ์ด๋ํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
$("์ด๋ฒคํธ ๋์ ์ ํ").focus(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("focus", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").focus();
$("์ด๋ฒคํธ ๋์ ์ ํ").blur(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("blur", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").blur();
$("์ด๋ฒคํธ ๋์ ์ ํ").focusin(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("focusin", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").focusin();
$("์ด๋ฒคํธ ๋์ ์ ํ").focusout(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("focusout", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").focusout();
* ํค๋ณด๋๋ก ๋ง์ฐ์ค ์ด๋ฒคํธ ๋์ํ๊ธฐ
ํค๋ณด๋ ์ ๊ทผ์ฑ์ด๋ ์ด๋ค ๋์ ์์์ ๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ์ ๋ ๋ง์ฐ์ค ์์ด ํค๋ณด๋๋ก ๋์ ์์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋งํ๋ค.
mouseover => focus
mouseout => blur
2๏ธโฃ change() ์ด๋ฒคํธ ๋ฉ์๋
change() ์ด๋ฒคํธ ๋ฉ์๋๋ ์ ํํ ํผ ์์์ ๊ฐ์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พผ๋ค. ํฌ์ปค์ค๊ฐ ๋ค๋ฅธ ์์๋ก ์ด๋ํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
$("์ด๋ฒคํธ ๋์ ์ ํ").change(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("change", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").change();
4. ํค๋ณด๋ ์ด๋ฒคํธ
ํค๋ณด๋ ์ด๋ฒคํธ๋ ์ฌ์ฉ์๊ฐ ํค๋ณด๋๋ก ์ ๋ ฅํ๋ฉด ๋ฐ์ํ๋ค.
1๏ธโฃ keydown() / keyup()/ keypress() ์ด๋ฒคํธ ๋ฉ์๋
keydown()๊ณผ keypress() ์ด๋ฒคํธ ๋ฉ์๋๋ ์ ํํ ์์์์ ํค๋ณด๋ ์ํ์ ๋๋ ์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ฑฐ๋ ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ๋ก ๋ฐ์์ํจ๋ค.
keydown()์ ๋ชจ๋ ํค(ํ๊ธ ํค ์ ์ธ)์ ๋ํด์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
keypress()๋ ๊ธฐ๋ฅํค(f1~f12, alt, ctrl, shift, backspace, ํ/์, tab ๋ฑ) ์ ๋ํด์๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค,
ํค๋ณด๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ์์ฑ๋ ์ด๋ฒคํธ ๊ฐ์ฒด์ ์์ฑ์ ์ด์ฉํ๋ฉด ๊ณ ์ ํค์ ์ฝ๋๊ฐ์ ๊ตฌํ ์ ์๋ค.
keyup() ์ด๋ฒคํธ ๋ฉ์๋๋ ์ํ์ ํค๋ฅผ ๋๋ ๋ค ํค์์ ์์ ๋ผ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ฑฐ๋ keyup ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ๋ก ๋ฐ์์ํจ๋ค.
$("์ด๋ฒคํธ ๋์ ์ ํ").keydown(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("keydown", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").keydown();
$("์ด๋ฒคํธ ๋์ ์ ํ").keypress(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("keypress", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").keypress();
$("์ด๋ฒคํธ ๋์ ์ ํ").keyup(function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").on("keyup", function() {์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋;});
$("์ด๋ฒคํธ ๋์ ์ ํ").keyup();
4. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์ ์ถ์ ํ๊ธฐ
1๏ธโฃ $(this) ์ ํ์
$(this)๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์๋ฅผ ์ ํํ์ฌ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์๋ฅผ ์ถ์ ํ ์ ์๋ค.
2๏ธโฃ index() ์ธ๋ฑ์ค ๋ฐํ ๋ฉ์๋
index() ์ธ๋ฑ์ค ๋ฐํ ๋ฉ์๋๋ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ ์์ ์ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์์ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐํํ๋ค.
$("์ด๋ฒคํธ ๋์ ์ ํ").on("์ด๋ฒคํธ ์ข ๋ฅ", function() {
$("์ด๋ฒคํธ ๋์ ์ ํ").index(this);
});