Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Each child in a list should have a unique "key" prop.
- augmentedDevice
- ELECTRON
- camera permission
- adb connect
- react-native
- camera access
- github lfs
- nextjs
- react-native-dotenv
- dvh
- github 100mb
- silent printing
- html
- animation
- ffi-napi
- 이미지 데이터 타입
- adb pair
- github pdf
- 티스토리 성능
- vercel git lfs
- rolldown
- npm package
- Failed to compiled
- device in use
- custom printing
- Can't resolve
- Recoil
- electron-packager
- Git
Archives
- Today
- Total
Bleeding edge
Nextjs 모바일 주소창 유무에 따른 높이(viewport height) 변화 막기 본문
제목이 다른 사람에게도 이해가 될지 모르겠지만..
1. 모바일 환경에서(chrome의 개발자도구에서는 안보인다.)
2. 주소창이 있다가 없어지는 경우(계속 보이는 경우나 계속 안보이는 경우에는 문제가 안생긴다.)
2번의 케이스는 touch event를 진행중일 때 발생한다. 이 viewport height에 변화가 생기는 이유는 모바일의 경우에 처음에는 주소창이 보이다가 스크롤을 움직이는 경우에는 주소창이 사라지면서 view port에 변화가 오기 때문이다. css에서는 이를 계산하는 dvh라는 것도 존재한다.
안드로이드에서는 사실 이 글을 쓰지 않아도 될 정도로 간단하게 해결되는데, 문제는 사파리에서는 dvh를 사용해도 이 문제가 생긴다.
이 문제가 발생하는 이유는 브라우저에서 스크롤 이벤트가 발생하는 경우에 모바일 뷰포트가 변화가 오는 것 이다. google에 이에 관련된 질문을 하면 대부분 html, body에 height를 주면 해결이 된다!와 같은 글들이 엄청 많은데, 종종 이 두개의 height만으로는 부족한 경우가 있다.
html,
body,
body > div:first-child,
div#__next,
div#__next > div {
height: 100%;
}
nextjs 같은 경우에 dom의 root를 body의 __next에 두고있기 때문에 그 element까지 주면 해결되는 경우가 있다.
한 가지 알아야할 주의 사항은.. html이나 body의 height 이벤트가 위의 css 로 인해서 변화하기 때문에 원래 작동하던 scrollTo가 작동 안하는 경우가 있다.(scroll과 관련된 메서드들)
'Javascript > React & Next' 카테고리의 다른 글
next.config.js 이미지 hostname 제한 풀기 (2) | 2023.11.22 |
---|---|
Nextjs App 디렉토리에서 404 페이지 만들기 (1) | 2023.11.13 |
상태관리 라이브러리의 장단점 정리(직접작성이 아닌 링크) (0) | 2023.06.16 |
contentEditable에서 한글입력 막기(단일 node) (1) | 2023.05.28 |
onKeyUp, onKeyDown 언제 사용하는게 좋을까?(feat ContentEditable) (0) | 2023.05.03 |