https://github.com/zJaaal/react-scroll-utilities
npm i react-scroll-utilities
설치npm run dev
실행📦src
┣ 📂example-components
┃ ┣ 📂dynamicBackground
┃ ┃ ┣ 📂types
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┗ 📜DynamicBackground.tsx
┃ ┗ 📂render
┃ ┃ ┣ 📂types
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┗ 📜Render.tsx
┣ 📂lib
┃ ┣ 📂components
┃ ┃ ┣ 📂circle
┃ ┃ ┃ ┣ 📂types
┃ ┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃ ┣ 📜Circle.style.css
┃ ┃ ┃ ┗ 📜Circle.tsx
┃ ┃ ┣ 📂rectangle
┃ ┃ ┃ ┣ 📂types
┃ ┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃ ┣ 📜Rectangle.style.css
┃ ┃ ┃ ┗ 📜Rectangle.tsx
┃ ┃ ┗ 📜ScrollWatcher.tsx
┃ ┣ 📂context
┃ ┃ ┗ 📜ScrollContext.ts
┃ ┣ 📂hooks
┃ ┃ ┣ 📜useDirection.ts
┃ ┃ ┣ 📜useDynamicColor.ts
┃ ┃ ┗ 📜useProximity.ts
┃ ┣ 📂types
┃ ┃ ┗ 📜index.ts
┃ ┣ 📂utils
┃ ┃ ┣ 📂calculations
┃ ┃ ┃ ┣ 📜clamp.ts
┃ ┃ ┃ ┣ 📜fixScroll.ts
┃ ┃ ┃ ┣ 📜getCoors.ts
┃ ┃ ┃ ┣ 📜getProximity.ts
┃ ┃ ┃ ┣ 📜getSteps.ts
┃ ┃ ┃ ┣ 📜linearValue.ts
┃ ┃ ┃ ┗ 📜slope.ts
┃ ┃ ┗ 📂validations
┃ ┃ ┃ ┣ 📜validateCircleProps.ts
┃ ┃ ┃ ┣ 📜validateColors.ts
┃ ┃ ┃ ┣ 📜validateRectangleProps.ts
┃ ┃ ┃ ┣ 📜validateRef.ts
┃ ┃ ┃ ┗ 📜validateScrollValue.ts
┃ ┗ 📜index.ts
┣ 📂__test__
┃ ┣ 📂components
┃ ┃ ┣ 📂direction
┃ ┃ ┃ ┗ 📜UseDirection.tsx
┃ ┃ ┣ 📂dynamicColor
┃ ┃ ┃ ┗ 📜useDynamicColorTest.tsx
┃ ┃ ┗ 📂proximity
┃ ┃ ┃ ┣ 📜UseProximityOnSight.tsx
┃ ┃ ┃ ┣ 📜UseProximityX.tsx
┃ ┃ ┃ ┗ 📜UseProximityY.tsx
┃ ┣ 📂mock
┃ ┃ ┣ 📜getBoundingClientRectMock.ts
┃ ┃ ┗ 📜matchMediaMock.ts
┃ ┣ 📜Circle.test.tsx
┃ ┣ 📜Rectangle.test.tsx
┃ ┣ 📜ScrollWatcher.test.tsx
┃ ┣ 📜setup.ts
┃ ┣ 📜useDirection.test.tsx
┃ ┣ 📜useDynamicColor.test.tsx
┃ ┗ 📜useProximity.test.tsx
┣ 📜App.tsx
┣ 📜IconTest.tsx
┣ 📜index.css
┣ 📜main.tsx
┗ 📜vite-env.d.ts
라이브러리폴더와 그 라이브러리로 만들어진 예시 컴포넌트가 내가 참고할 핵심 코드들 인 듯 했다.
⇒ 뜯어서 적용 해 보려고 하였으나 간단하게 스크롤 위치만 확인 후에 색 변화만 주면 된다는 생각이 들어 그만 두기로 함
디렉토리 구조 파악하는데 시간이 더 걸릴듯 하여 중단..
⇒ Node.js 세계에서는 window가 정의되지 않았기 때문에 window는 브라우저에서만 사용할 수 있다고 한다.
참고 : https://dev.to/vvo/how-to-solve-window-is-not-defined-errors-in-react-and-next-js-5f97
참고 링크에 솔루션이 있으니 따라 해 본다
if문으로 window가 undefined인지 판단
⇒스크롤 콘솔에서 보인다, 해결!
세로 위치 확인
이제 위치에 따라서 조건부로 문구를 보여주면 되지 않을까?
타입스크립트에서 이벤트는 그냥 사용해서 난 에러
어렵다 어려워
나는 글씨 하나 자유롭게 못 바꾸는,, 가..?^^;
[Javascript] 화면, 현재위치, HTML요소(태그) 좌표구하기
document is not defined 에러가 뭐야? 해결법 !! (feat. window is not defined)
How to solve "window is not defined" errors in React and Next.js