[JS + jquery] ์ œ์ด์ฟผ๋ฆฌ ์ด๋ฒคํŠธ ๊ฐ์ฒด์™€ ์ข…๋ฅ˜, ํฌ์ปค์Šค ์ด๋ฒคํŠธ, ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ (scroll(), focus(), blur(), focusin(), focusout(), change(), keydown(), keyup(), keypress(), $(this), index())

2021. 10. 29. 16:02ใ†HTML + CSS + JS/JS ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

728x90

 

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

๋น„ ์ถ”์ฒœ ๋ฐฉ์‹ - ํ‚ค๋ณด๋“œ ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค x 
์ถ”์ฒœ ๋ฐฉ์‹ ํ‚ค๋ณด๋“œ ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค 
๋ฒ„ํŠผ2๋Š” tabํ‚ค๋กœ๋„ focus ์žกํž˜ 

 

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);

});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90