문제 상황
navbar의 사이드 메뉴가 펼쳐졌을 때 body의 스크롤을 막아야 했습니다.
해결 방법
useEffect(() => {
if (mobileMenuCollapsed) {
document.body.style.overflow = 'hidden'
document.body.style.width = '100%'
document.body.style.height = '100%'
} else {
document.body.style.overflow = 'auto'
document.body.style.width = ''
document.body.style.height = ''
}
return () => {
document.body.style.overflow = 'auto'
}
}, [mobileMenuCollapsed])
여기서 포인트는 body의 width, height를 100%
로 설정하는 것입니다.
그렇지 않으면 높은 확률로 스크롤이 움직이게 됩니다.
'Programming > Client' 카테고리의 다른 글
Amazon S3 Pre-signed URL의 만료 시간 검사하기 (0) | 2024.10.13 |
---|---|
여러 번 호출 가능한 abortController 만들기 (feat. useRef) (0) | 2024.06.07 |
[Javascript] 파일 및 모듈 내보내기 (script / Common JS / ES Modules 그리고 Bundler) (1) | 2023.09.30 |
[MSW] 브라우저, Node.js 환경에서 API 모킹하기 (0) | 2023.05.22 |
Javascript / React에서 Fetch 올바르게 사용하기 (with Node.js 테스트 환경) (0) | 2023.05.21 |