반응형
    
    
    
  
														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 | 31 | 
													Tags
													
											
												
												- 타입스크립트
- 국비IT
- 정보처리기사실기
- 정보처리기사정리
- Oracle
- 평일코딩
- spring
- 리액트
- 정보처리기사요약
- 국비코딩
- Java의정석
- javascript
- 이안의평일코딩
- php
- CSS
- 자바의정석
- 정보처리기사
- 스프링
- react
- 정보처리기사실기정리
- 자바스크립트
- 자바스크립트 코딩테스트
- 정보처리기사실기요약
- VUE
- 리액트네이티브
- 자스코테
- ReactNative
- 코딩테스트
- typescript
- 오라클
													Archives
													
											
												
												- Today
- Total
이안의 평일코딩
[Vue] Vue의 기초(7) - UI 애니메이션 <transition> 본문
반응형
    
    
    
  
UI 애니메이션 <transition>
애니메이션 시작 전 class(start)를 디자인하고 동작 후 class(end)를 디자인한다. 그리고 원할 때 애니메이션 동작 후 class를 부착한다. 시작 전 class 명에 transition 속성을 주면 부드럽게 애니메이션이 완성된다.
CSS
<template>
  <div class="start" :class="{ end : modal }">
  <Modal @closeModal="modal = false;" :oneroom="oneroom" :clicked="clicked" :modal="modal" />
  </div>
</template>
<style>
.start {
  opacity: 0;
  transition: all 1s;
}
.end {
  opacity: 1;
}
</style>먼저 애니메이션 주고싶은 요소를 <transition name="작명">으로 감싼다.
.작명-enter-from{시작스타일} .작명-enter-active{transition} .작명-enter-to{끝날때스타일}로 3개를 작성한다.
<transition> 태그 이용
<template>
  <transition name="fade">
    <Modal @closeModal="modal = false;" :oneroom="oneroom" :clicked="clicked" :modal="modal" />
  </transition>
</template>
<style>
.fade-enter-from {
  opacity: 0;
}
.fade-enter-active {
  transition: all 1s;
}
.fade-enter-to {
  opacity: 1;
}
</style>.fade-enter-from {
  transform: translateY(-150px);
}
.fade-enter-active {
  transition: all 0.3s;
}
.fade-enter-to {
  transform: translateY(0px);
}
동적 UI
먼저, UI 현재 상태를 데이터로 만든다. (0일때, 1일때, 2일때.. 이런식으로 화면이 다르게 나오게)
<script>
export default {
  name: 'App',
  data(){
    return {
      step: 0,
    }
  },
}
</script>상태에 따라 HTML이 어떻게 보일지 정한다.
<template>
 <div v-if="step==0">내용0</div>
 <div v-if="step==1">내용1</div>
 <div v-if="step==2">내용2</div>
 <button @click="step = 0">버튼0</button>
 <button @click="step = 1">버튼1</button>
 <button @click="step = 2">버튼2</button>
</template>반응형
    
    
    
  'Front-end > Vue' 카테고리의 다른 글
| [Vue] Vue의 기초(9) - Lifecycle(라이프사이클), Hooks (0) | 2021.04.14 | 
|---|---|
| [Vue] Vue의 기초(8) - sort 정렬, spread operator (0) | 2021.04.13 | 
| [Vue] Vue의 기초(6) - 이벤트리스너 v-model, watcher (0) | 2021.04.13 | 
| [Vue] Vue의 기초(5) - Component, props, custom event (0) | 2021.04.12 | 
| [Vue] Vue의 기초(4) - Router, layout, views (1) | 2021.04.08 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				 
								 
								 
								