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๋ฅผ ์ฌ์ฉํด ์ ๋๋ฉ์ด์ ์ ๋ฐ๋ก ๋ง๋ค์ง ์๋๋ผ๋ ๋ถ๋๋ฝ๊ฒ ์ด๋ํ ์ ์๋์ ์ด ์ ์ฉํด ๊ผญ ๊ธฐ์ตํ์ ์๊ฐํ๋ค.
์ฐธ๊ณ
- https://developer.mozilla.org/ko/docs/Web/API/Window/pageYOffset
- https://developer.mozilla.org/ko/docs/Web/API/Window/scrollY
- https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
- https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo
- https://stackoverflow.com/questions/1925671/javascript-window-scroll-vs-window-scrollto