스크롤 퍼센트 구하기
이전 글에는 요소의 절대위치를 구하는 글을 적었습니다.
이번에는 현재 내가 얼마나 스크롤을 했는지 퍼센트를 구하는 방법입니다!
( 스크롤 된 높이 + 보고있는화면(viewport)높이 ) / 전체문서높이 * 100
활용하기
Element.scrollTop
: 요소의 콘텐츠가 세로로 스크롤되는 픽셀수Element.scrollHeight
: 요소의 콘텐츠의 총 높이Element.clientHeight
: 요소의 내부높이
스크롤 시 몇 퍼센트 했는지 알 수 있는 로직입니다.
const [percentage, setPercentage] = useState();
const getScrollPercentage = () => {
const scroll = document.documentElement.scrollTop;
const scrollHeight = document.documentElement.scrollHeight;
const clientHeight = document.documentElement.clientHeight;
const viewport = scrollHeight - clientHeight;
const percentage = (scroll / viewport) * 100;
return setPercentage(Math.floor(percentage));
};
useEffect(() => {
window.addEventListener('scroll', getScrollPercentage);
return () => window.removeEventListener('scroll', getScrollPercentage);
}, []);
'React' 카테고리의 다른 글
React - Image URL을 다운로드 할 수 있는 방법 (0) | 2023.09.23 |
---|---|
React - Portals 로 모달만들기 (0) | 2023.09.23 |
React - 합성 컴포넌트 적용해보기 (Modal) (0) | 2023.09.23 |
React - 버튼 클릭으로 컴포넌트 렌더링하기 (0) | 2023.09.23 |
React - 컴포넌트 절대위치 찾기 (0) | 2023.09.23 |