pageYOffset vs scrollY, scroll() vs scrollTo()

๐Ÿค”What is Problem?

ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ˆ˜์ง์œผ๋กœ ์Šคํฌ๋กคํ•œ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ์ˆจ๊ฒจ์ง„ ๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™” ํ•˜๊ณ , ์Šคํฌ๋กค ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋งจ ์œ„๋กœ ์Šคํฌ๋กคํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ–ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์ˆ˜์ง์œผ๋กœ ์Šคํฌ๋กคํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์Šคํฌ๋กค์„ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ด ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋Š”๋ฐ, ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์ค‘๋ณต์œผ๋กœ ์กด์žฌํ•ด ์–ด๋–ค๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋‹ค.

Window.pageYOffset vs Window.scrollY

๋จผ์ € ์ˆ˜์ง์œผ๋กœ ์Šคํฌ๋กคํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” Window.pageYOffset์™€ Window.scrollY๊ฐ€ ์กด์žฌํ–ˆ๋‹ค. MDN์—์„œ๋Š” pageYOffset์ด scrollY์˜ ๋‹ค๋ฅธ์ด๋ฆ„์ด๋ผ๊ณ  ํ–ˆ์ง€๋งŒ, ๋‘ ํ”„๋กœํผํ‹ฐ์—๋Š” ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์˜ ์ฐจ์ด๊ฐ€ ์กด์žฌํ–ˆ๋‹ค.

์ผ๋ถ€ ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ €๋Š” scrollY ๋Œ€์‹  pageYOffset๋งŒ ์ง€์›ํ–ˆ๊ณ  ๋…ธํ›„ ํ™˜๊ฒฝ์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋ฉด ๋‘˜ ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ, ๋ณ„๋‹ค๋ฅธ ์š”๊ตฌ์กฐ๊ฑด์ด ์—†๋‹ค๋ฉด ํ•˜์œ„ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด pageYOffset์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ ์ฝ”๋“œ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

Window.scroll() vs Window.scrollTo()

๋‹ค์Œ์œผ๋กœ ๋งจ ์œ„๋กœ ์Šคํฌ๋กคํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Window.scroll() ์ด๋‚˜ Window.scrollTo() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด ๋‘ ๋ฉ”์„œ๋“œ๋Š” ์ฐจ์ด ์—†์ด ๋™์ผํ•ด ๋‘˜ ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์•˜๋‹ค. ๋‹ค๋งŒ scroll ๋ฉ”์„œ๋“œ๊ฐ€ ๋” ๋จผ์ € ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ ์ฝ”๋“œ๋„ ๋งŽ๊ณ  ํ˜น์—ฌ๋‚˜ ๋ฒ„๊ทธ๋“ฑ์ด ๋ฐœ์ƒํ•ด ๊ฒ€์ƒ‰์„ ํ•ด์•ผํ•œ๋‹ค๋ฉด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋„ ๋งŽ์•„ scroll์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

๋˜ ๋‹จ์ˆœํžˆ ๋ฉ”์„œ๋“œ์˜ ์ธ์ž๋กœ x-์ขŒํ‘œ์™€ y-์ขŒํ‘œ๋ฅผ ์ฃผ๋Š”๊ฒƒ ์ด์™ธ์—๋„ options๋ฅผ ํ†ตํ•ด top, left, behavior๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ํŠนํžˆ behavior: smooth๋ฅผ ์‚ฌ์šฉํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š๋”๋ผ๋„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”์ ์ด ์œ ์šฉํ•ด ๊ผญ ๊ธฐ์–ตํ•˜์ž ์ƒ๊ฐํ–ˆ๋‹ค.

์ฐธ๊ณ