getBoundingRect().top๊ณผ offsetTop์„ ์ด์šฉํ•œ ๊ฑฐ๋ฆฌ๊ฐ’ ๊ณ„์‚ฐ

์บ”๋ฒ„์Šค์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ์ฐฝ ์‚ฌ์ด์ฆˆ์— ๋”ฑ ๋งž๊ฒŒ ์กฐ์ •ํ•˜์˜€๊ณ  ์กฐ์ • ๋œ ์บ”๋ฒ„์Šค ๊ธฐ์ค€์œผ๋กœ ์Šคํฌ๋กค ๊ฐ’์ด ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ๋งž๋‹ฟ์•˜์„ ๋•Œ ์„ค์ •ํ•ด ๋‘” ์บ”๋ฒ„์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ณผ ์บ”๋ฒ„์Šค ์ด๋ฏธ์ง€ ๊ฐ„์˜ height ๊ฐ’์„ getBoundingClientRect().top์„ ํ†ตํ•ด ๊ณ„์‚ฐํ•˜์˜€๋‹ค. ๊ด€๋ จ ์˜์ƒ ํ•˜์ง€๋งŒ ์›๋ž˜ ์˜๋„ํ–ˆ๋˜ ๋ฐ”์™€๋Š” ๋‹ฌ๋ฆฌ ์บ”๋ฒ„์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด๋Š” getBoundingClientRect().top ๊ฐ’์ด ์ผ์ •ํ•˜๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•„๋ž˜ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ด ๋ณธ ๋ฐ”์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กคํ•˜๋Š” ์†๋„์— ๋”ฐ๋ผ ๊ฐ’์ด top์˜ ๊ฐ’์ด ์ƒ์‹œ ๋ณ€ํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์š”์†Œ์˜ offsetTop์„ ์ด์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ณผ ์บ”๋ฒ„์Šค ์ด๋ฏธ์ง€ ๊ฐ„์˜ height ๊ฐ’์— ์–ป๊ณ ์ž ํ–ˆ๋‹ค. offs..

JS 2021. 3. 29. 18:52
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ(setTimeout, Promise then, RequestAnimationFrame)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ™์€ ์žฌ๊ท€ ํ˜ธ์ถœ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‘ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„ ๋‘ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค. setTimeout()์œผ๋กœ ์žฌ๊ท€ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ css์— ์ ์šฉ ํ•œ button:hover์˜ ์ƒ‰์ƒ๊ฐ’์ด ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๋—์„ ๋•Œ ์ž˜ ํ•ด์ œ๋˜๋Š” ๋ฐ˜๋ฉด์— Promise then์œผ๋กœ ์žฌ๊ท€ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋Š” ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๋—์Œ์—๋„ button:hover์˜ ์ƒ‰์ƒ ๊ฐ’์ด ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋‘ ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ์— ์ ์žฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. setTimeout()๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ…Œ์Šคํฌ ํ์— ์ ์žฌ๋˜๋Š” ๋ฐ˜๋ฉด Promise then๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” Microtask ํ์— ์ ์žฌ๋œ๋‹ค. ์ด ๋‘˜ ๋ชจ๋‘ ์ฝœ ์Šคํƒ์ด ๋น„์–ด์žˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฃจํ”„์— ์˜ํ•ด ์ฝœ ์Šคํƒ์— ์ ์žฌ๋œ๋‹ค๋Š” ์ ์€ ๋˜‘๊ฐ™์œผ๋‚˜ ๋‹ค์†Œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค...

JS 2021. 3. 11. 14:13
๋นŒ๋” ํŒจํ„ด(Builder Pattern)์œผ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ช…์‹œ์ ์ด๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„

๋‹ค์Œ๊ณผ ๊ฐ™์ด Game ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž์— ์ „๋‹ฌ ํ•  ์ธ์ž๋“ค์„ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. ๊ธฐ๋Šฅ ์ƒ์—๋Š” ๋ฌธ์ œ๋Š” ์—†์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋ชจ๋‘ ์ƒ์„ฑ์ž ๋‚ด์—์„œ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋œ๋‹ค๋ฉด ๋„˜๊ธฐ๋Š” ์ธ์ž์˜ ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉด ๋ณต์žกํ•ด์ง€๊ณ  ์ด ์ธ์ž๋“ค์ด ๋ฌด์—‡์„ ์ง€์นญํ•˜๋Š”์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค. ์ด๋กœ ์ธํ•ด ์ฝ”๋“œ ์ƒ ์œ ์—ฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ข…์†์ ์ด๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋” ํŒจํ„ด(Bulider Pattern)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์˜€๋‹ค. Game ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ด์ „์— ์ž„์˜์˜ GameBuilder ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๊ณ  ํด๋ž˜์Šค ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ์—ˆ๊ณ  ์ดํ›„ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•จ๊ณผ ๋™์‹œ์— ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹์„ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ฐ Game ํด๋ž˜์Šค ์ธ์Šคํ„ด..

JS 2021. 3. 11. 13:27
ํด๋ž˜์Šค ๋‚ด์—์„œ this๋ฐ”์ธ๋”ฉ์ด ์ œ๋Œ€๋กœ ์•ˆ๋˜๋Š” ๋ฌธ์ œ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•ด์ฃผ๊ณ  ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ OnClick ๋ฉ”์†Œ๋“œ ๋‚ด์—์„œ์˜ this๋Š” Field ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์ง€ ๋ชปํ•˜๊ณ  undefined๋ฅผ ๋ฐ”์ธ๋”ฉ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. (2021.3.17) onClick์€ ์ฝœ๋ฐฑํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ฐจ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ์ด ๋œ๋‹ค. ์ผ๋ฐ˜ ํ•จ์ˆ˜์˜ this๋Š” ์ „์—ญ ๊ฐ์ฒด๊ฐ€ ๋ฐ”์ธ๋”ฉ๋˜์ง€๋งŒ class ๋‚ด์˜ ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ์—์„  ๊ธฐ๋ณธ์ ์œผ๋กœ 'strict mode'๊ฐ€ ์ ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— undefined ๊ฐ€ ๋ฐ”์ธ๋”ฉ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. (2021.7.25)์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ this๋Š” currentTarget, ์ฆ‰ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ”์ธ๋”ฉํ•œ DOM ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ..

JS 2021. 3. 11. 13:06
ํด๋ž˜์Šค ๋‚ด์—์„œ์˜ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ์ฒ˜๋ฆฌ

๋ชจ๋“ˆํ™”๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด button ํƒœ๊ทธ์˜ ํด๋ž˜์Šค ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์ธ btn์˜ ๋…ธ๋“œ ์ƒ์„ฑ๊ณผ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก์„ Button ํด๋ž˜์Šค ๋‚ด์˜ ์ƒ์„ฑ์ž์— ์„ ์–ธํ•˜์—ฌ ์ฃผ์—ˆ๋‹ค. btn ์š”์†Œ์— ์ง์ ‘์ ์œผ๋กœ addEventListener์„ ๋“ฑ๋กํ•˜์ง€ ์•Š์•˜์Œ์—๋„ ์ฝ˜์†”์—” Hello๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ์œ„์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๊ฒŒ ๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 1. this ๋ฐ”์ธ๋”ฉ this๋Š” ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ์„œ, ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์—ฌ๊ธฐ์„œ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋Š” btn์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ํ•จ์ˆ˜ ํ‰๊ฐ€ ๊ณผ์ •์ด ๋๋‚˜๊ณ  ์‹ค์ œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค. 2. constructor ์ƒ์„ฑ์ž ํ•จ์ˆ˜ constructor ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด์˜ ์ฝ”๋“œ์‹๋“ค์„ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๊ณ  ์•”๋ฌต์ ์œผ๋กœ this, ์ฆ‰ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 3. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜..

JS 2021. 3. 9. 20:06
Critical Rendering Path_์„ฑ๋Šฅ ๋ณด์žฅ ๋ Œ๋”๋ง

์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งˆ์šฐ์Šค ์ปค์„œ์— ๋”ฐ๋ผ ์›€์ง์ด๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•˜์˜€๋‹ค. top๊ณผ left ์†์„ฑ์ด ์•„๋‹Œ translate ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋Š”๋ฐ, ์ด๋Š” ๋žœ๋”๋ง ์„ฑ๋Šฅ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋žœ๋”๋ง์ด ์ง„ํ–‰๋˜๋Š” ๊ณผ์ •์„ ํฌ๊ฒŒ ๋ถ„๋ฅ˜ํ•˜์ž๋ฉด, Construction( DOM CSSOM RenderTree ) Operation( layout paint composition) ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์‹ค์ œ ์š”์†Œ๋“ค์„ ํ™”๋ฉด์— ๋ณด์ด๊ฒŒ๋” ํ•˜๋Š” Operation ๊ณผ์ • ์ค‘ paint์—์„œ๋Š” DOM์ด๋‚˜ CSSOM์—์„œ ๊ตฌ์„ฑ ํ•œ ๋‚ด์šฉ์„ ๋ฐ”๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ์š”์†Œ๋“ค์„ ์ž˜๊ฒŒ ๋‚˜๋ˆ ์„œ ์ด๋ฏธ์ง€(๋น„ํŠธ๋งต ํ˜•์‹)๋ฅผ layer๋ณ„๋กœ ์ค€๋น„ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด๋Š” ํ›„ ์ˆ˜์ •์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ ๊ฐ layer๊ฐ€ ์•„๋‹Œ ์ „์ฒด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜..

HTML CSS 2021. 3. 1. 16:17
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ๊ณผ ์‹คํ–‰

Window load ํฌ๊ฒŒ ๋„ค ๊ฐ€์ง€์˜ API๊ฐ€ ์žˆ๋‹ค. 1. DOMContentLoaded: HTML ํŒŒ์‹ฑ๋งŒ ์™„๋ฃŒ๋˜๋ฉด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ๋ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. 2. load: css ๋ฐ image ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ๋“ค์ด ๋ชจ๋‘ ์™„๋ฃŒ๋œ ๋’ค์— ํ˜ธ์ถœ ๋ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. 3. beforeunload: ํŒŒ์‹ฑ์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ณ€์ˆ˜(์›นํŽ˜์ด์ง€์˜ ์ดˆ๊ธฐํ™” ๋“ฑ)๊ฐ€ ์ƒ๊ธธ ๋•Œ ํ˜ธ์ถœ ๋ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. 4. unload: css ๋ฐ image ๋“ฑ๊ณผ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ์— ์‹คํŒจํ•˜์˜€์„๋•Œ ํ˜ธ์ถœ ๋ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ Œ๋”๋ง์—”์ง„๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ํŒŒ์‹ฑ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ง๋ ฌ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™๊ธฐ์ ์ธ(synchronous) ์„ฑํ–ฅ์„ ์ง€๋‹Œ๋‹ค. ์ฆ‰, script ํƒœ๊ทธ ์œ„์น˜์— ์˜ํ•ด ๋ธ”๋กœํ‚น์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค(์ข…์†์ ์ด๋‹ค)..

JS 2021. 2. 28. 14:34
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ