모달창이 열릴 때 애니메이션 효과를 줘보자
기존 css로 만드는 법
<style>
.start {
opacity: 0;
Transition: all 1s;
}
.end {
opacity: 1;
}
--> style을 주고
<div class="start" :class="{ end : modalOpen }">
<Modal @closeModal="modalOpen=false;" :원룸들="원룸들" :누름="누름" :modalOpen="modalOpen" />
</div>
--> class명 넣어주면 끝!
class명을 조건부로 넣으려면 { 클래스명 : 조건 } 으로 사용하면 된다.
:class="{ end : modalOpen }"은 modalOpen이 true 면 end를 클래스명에 넣어라. 라는 의미가 된다.
Vue 에서는 <transition> 을 이용하면 애니메이션을 쉽게 줄 수 있다.
<transition name="fade">
<Modal @closeModal="modalOpen=false;" :원룸들="원룸들" :누름="누름" :modalOpen="modalOpen" />
</transition>
--> html에서 <transition name="작명"> 태그를 넣어준다. ( fade는 내가 작명한 것 )
<style>
.fade-enter-from {}
.fade-enter-active {}
.fade-enter-to {}
--> 스타일에서는 class명이 3개 필요하다. from은 시작 스타일, to는 끝 스타일, active는 transition을 넣어주면 된다.
.fade-enter-from {
opacity: 0;
}
.fade-enter-active {
transition: all 1s;
}
.fade-enter-to {
opacity: 1;
}
--> 이렇게 하면 위 css로 만든 애니메이션과 똑같은 애니메이션이 만들어진다.
퇴장 애니메이션(모달창이 닫힐 때)도 간단하게 만들 수 있다.
.fade-leave-from {
opacity: 1;
}
.fade-leave-active {
transition: all 1s;
}
.fade-leave-to {
opacity: 0;
}
--> 위 enter를 leave로 바꾸면 끝
출처 : 코딩애플
'Language > Vue.js' 카테고리의 다른 글
[Vue] 라이프 사이클 (LifeCycle) (2) | 2024.05.08 |
---|---|
[Vue] 정렬 기능(sort)과 데이터 원본 보존 (0) | 2024.05.07 |
[Vue] watcher로 데이터 감시하는 법 (0) | 2024.05.05 |
[Vue] 사용자의 input을 받는 법 (v-model) (0) | 2024.05.05 |
[Vue] 자식이 부모데이터 바꾸고 싶을 때 custom event (0) | 2024.05.05 |