Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ #219 ✨
todo
📌 내가 알게 된 부분
우선 제가 처음에 모달 부분을 다음과 같이 구조를 짰는데요. 참고로 ModalOverlay는 모달 뒤에 깔리는 불투명한 검정색 배경입니다.
isModalOpen
state를 만들어서 state가 바뀔 때마다 ModalOverlay는 position:display와 none을 왔다갔다하고(모달이 없어지면 오버레이도 없어져야하니), BottomSheetModal은 position:fixed; 상태에서 bottom 값을 바꿈으로써 아래에서 위로 올라오도록 위치를 변경했어요. 그 상태에서 transition을 적용하면 아래에서 위로 올라오는 애니메이션이 적용되어야하는데 아무리해도 적용이 안되는겁니다!! ㅠㅠ스윽하고 움직인다는 점이었습니다. transition이 적용이 안된 상황은 아니었던거죠.isModalOpen
state값에 따라서 ModalOverlay 컴포넌트의 position을 display<->none 으로 토글하고 있었던 것 때문이었습니다! ModalOverlay는 BottomSheetModal의 부모요소인데, ModalOverlay가 display<->none으로 깜빡거리면, 즉 요소가 돔에서 아예 없어졌다 나타났다 하면 그에 따라 자식요소인 BottomSheetModal도isModalOpen
값에 따라 없어졌다 나타났다 할 것이고, 그래서 transition이 보일 새도 없이 그저 돔에서 제거될뿐이었던 겁니다...📌 공유하고 싶은 부분
모달.. 여러번 만들어도 왜 자꾸 헷갈리는걸까요? 이번 기회로 모달을 제작하는 저만의 방법론(?)을 정립할 수 있었습니다.
css transition 속성에 대해 고민해본 적 있나요? transition은 어떠한 css 속성이 변화할 때, 이것이 일정 시간(duration)에 걸쳐 일어나도록 하는 것인데요. 예를들어 hover시에 글자 색상이 바뀌게 했는데 여기에
transition:color 1s;
을 적용하면 글자 색상의 변화가 1s라는 시간에 걸쳐서 서서히 발생하게 하는 것이죠. 그렇다면 animatable css property에 대해 생각해본 적이 있나요? 즉, transition이 어떤 속성에나 먹히진 않는다는 거예요. '서서히 바뀔 수 있는' 속성에만 적용할 수 있죠. 예를들어, display 속성에는 transition을 적용할 수 없습니다. display:none 과 flex를 서서히 변화시킬 수는 없는거예요.📌 질문할 부분
isModalOpen
상태값이 false로 초기화되어있다가 useEffect를 통해서 첫 렌더링시에 이를 true로 바꿈으로서, 이 페이지에 처음 접속했을 때 모달이 아래에서 위로 올라오는 애니메이션이 적용되도록 구현했어요. 그런데 모달 뒤에 오버레이의 유무 또한isModalOpen
값에 의존하다 보니, 이 페이지에 딱 처음 접속했을 때 아주 잠깐동안 overlay가 없다가 모달이 올라오면서 overlay가 생기거든요. 즉 첫 렌더링이 되면서 overlay가 생기는데, 약간의 딜레이가 있어서 살짝 깜빡거리는 느낌이 나는거예요. 아 이거 참 말로 설명하기 어렵네요. 영상으로 보면 이해가 되실까요?2023-11-07.10.19.49.mov
보이나요!! 딱 처음 페이지 들어갔을때 오버레이가 살짝 깜빡이는거 보이나요!! ㅠㅠ 이거 너무 거슬리는데 어떻게 해결하면 좋을지 고민이네요...