[Main-Project] useScroll Hook
๋ฉ์ธ ํ๋ก์ ํธ์์ ๊ตฌํ์ ๋งก๊ฒ๋ ํ์ด์ง์ค์ ๋ฉ์ธํ์ด์ง๊ฐ ์๋ค. ๋ฉ์ธํ์ด์ง๋ ์๋น์ค ์๊ฐ์ ํ์ด์ง ์ด๋ ์ ๋์ ์ปจํ
์ธ ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ๊ทธ์ค ์๋น์ค ์๊ฐ ๋ถ๋ถ์๋ ์คํฌ๋กค ์ ๋๋ฉ์ด์
์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ ์์ ์ด์๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค ์์น๋ฅผ ์ธก์ ํด์ค useScroll
hook์ ์์ฑํ๋ค.
import { useState, useEffect } from "react";
export const useScroll = () => {
const [scrollY, setScrollY] = useState(window.scrollY);
const onScroll = () => {
setScrollY(window.scrollY);
};
useEffect(() => {
window.addEventListener("scroll", onScroll);
return () => window.removeEventListener("scroll", onScroll);
}, []);
return scrollY;
};
์ฐพ์๋ณธ ์์์๋ X์ถ ์คํฌ๋กค๊น์ง ๊ณ์ฐํ๋ ์์๋ค์ด ๋ง์์ง๋ง ๋๋ Y์ถ ์คํฌ๋กค๋ง ํ์ํ ๊ฒ ๊ฐ์ Y์ถ ์คํฌ๋กค๋ง์ ์ธก์ ํด์ฃผ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์๋์ ๊ฐ์ด ๋ถ๋ฌ์จ ํ ์คํฌ๋กค์ ๋ฐ๋ฅธ ํด๋์ค๋ช ์ ๋ถ์ฌํด ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ฌ์ฉํ๋ค.
Leave a comment