๐ŸŽˆ ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ ์ขŒํ‘œ

Lee Jooamยท2022๋…„ 5์›” 9์ผ
0

target.addEventListener("mousedown", (e) => {
	console.log(e);
});

๋‹ค์Œ์€ ๋งˆ์šฐ์Šค ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ถœ๋ ฅํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋‹ค.

์ด๋•Œ ๋งˆ์šฐ์Šค ์ปค์„œ์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ์ž‘๋™์‹œํ‚ค์ž ํ•œ๋‹ค๋ฉด ์–ด๋–ค ๊ฐ’์„ ๋ด์•ผํ• ๊นŒ?

X, Y์ธ ๊ฒƒ์€ ๋Š๋‚Œ ์ƒ ์•Œ๊ฒ ๋Š”๋ฐ X, Y๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค. ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ์•„๋ณด์ž.

๐ŸŽจ clientX, clientY

ํด๋ผ์ด์–ธํŠธ ์˜์—ญ์—์„œ ์ขŒ์ธก ์ƒ๋‹จ์„ ๊ธฐ์ค€์œผ๋กœ X, Y ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์˜์—ญ์€ ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ถ€๋ถ„์ด๋‹ค.

๋งŒ์•ฝ ์Šคํฌ๋กค์ด ์žˆ๋Š” ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กค์„ ๋‚ด๋ ค๋„ ๊ฐ™์€ ์œ„์น˜์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

๐ŸŽจ offsetX, offsetY

์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๋ฐฐ์—ด์ด๋‚˜ ์ž๋ฃŒ ๊ตฌ์กฐ ์˜ค๋ธŒ์ ํŠธ ๋‚ด์˜ ์˜คํ”„์…‹(offset)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์ผ ์˜ค๋ธŒ์ ํŠธ ์•ˆ์—์„œ ์˜ค๋ธŒ์ ํŠธ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฃผ์–ด์ง„ ์š”์†Œ๋‚˜ ์ง€์ ๊นŒ์ง€์˜ ๋ณ€์œ„์ฐจ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ํ˜•์ด๋‹ค.

offset์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์œ„ํ‚คํ”ผ๋””์•„ ๋ฌธ์„œ ๋‚ด์šฉ์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด offset์€ ์‹œ์ž‘์ ์œผ๋กœ ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ์ด๋‹ค. ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ์˜ ์‹œ์ž‘์ ์€ ์–ด๋”œ๊นŒ?

๋ฐ”๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์†Œ์˜ ์ขŒ์ธก ์ƒ๋‹จ์ด๋‹ค. ์ขŒ์ธก ์ƒ๋‹จ์œผ๋กœ๋ถ€ํ„ฐ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์ง€์ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ offsetX, offsetY๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

๐ŸŽจ pageX, pageY

๋ฌธ์„œ ์ „์ฒด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์ง€์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์›์ ์€ ๋ฌธ์„œ์˜ ์ขŒ์ธก ์ƒ๋‹จ์ด๋‹ค.

์Šคํฌ๋กค์ด ์—†๋Š” ๋ฌธ์„œ๋ผ๋ฉด clientX, clientY์™€ ๋™์ผํ•œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๐ŸŽจ screenX, screenY

์‚ฌ์šฉ์ž์˜ ์Šคํฌ๋ฆฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฒคํŠธ์˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์›์ ์€ ์ขŒ์ธก ์ƒ๋‹จ์ด๋‹ค.

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ๊ฑธ์–ด๊ฐ€๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€