VUE
[Vue] transition 사용법
seominki
2023. 12. 27. 09:31
transition 이란?
- transition은 애플리케이션 내에서 요소 추가, 업데이트, 제거될 때 애니메이션 효과를 적용하기 위한 기능
- css, javascript transition 을 모두 지원
transition 속성
- name: 트랜지션 이름
- appear: 초기 렌더링 시에도 트랜지션을 적용할지 여부
- appear-class: 초기 렌더링 시 트랜지션을 적용할 때 적용할 클래스
- enter-class: 추가될 요소에 적용될 클래스
- enter-active-class: 추가될 요소가 애니메이션을 수행하는 동안 적용될 클래스
- enter-to-class: 추가될 요소가 애니메이션을 완료한 후 적용될 클래스
- leave-class: 제거될 요소에 적용될 클래스
- leave-active-class: 제거될 요소가 애니메이션을 수행하는 동안 적용될 클래스
- leave-to-class: 제거될 요소가 애니메이션을 완료한 후 적용될 클래스
예시
<template>
<div>
<button @click="showBox = !showBox">
Toggle Box
</button>
<transition name="fade">
<div v-if="showBox" class="box"></div>
</transition>
</div>
</template>
<script>
export default {
data() {
return {
showBox: false
};
}
};
</script>
<style>
.box {
width: 200px;
height: 200px;
background-color: red;
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}
</style>
위 예시의 버튼을 클릭하게 되면 box 라는 className 을 가진 div 엘리먼트가 dom에 추가됐다가 제거되는 기능을 하는데 dom에 추가 또는 삭제 될 때 css transition으로 애니메이션 효과를 준다
transition 클래스
v-enter: enter의 시작 상태. 엘리먼트가 삽입되기 전에 적용되고 한 프레임 후에 제거됩니다.
v-enter-active: enter에 대한 활성 및 종료 상태. 엘리먼트가 삽입되기 전에 적용됩니다. 트랜지션 / 애니메이션이 완료되면 제거됩니다.
v-enter-to: 진입 상태의 끝에서 실행됩니다. 엘리먼트가 삽입된 후 (동시에 v-enter가 제거됨), 트랜지션/애니메이션이 끝나면 제거되는 하나의 프레임을 추가했습니다.
v-leave: leave를 위한 시작 상태. 진출 트랜지션이 트리거 될 때 적용되고 한 프레임 후에 제거됩니다.
v-leave-active: leave에 대한 활성 및 종료 상태. 진출 트랜지션이 트리거되면 적용되고 트랜지션 / 애니메이션이 완료되면 제거됩니다.
v-leave-to: 진출 상태의 끝에서 실행됩니다. 진출 트랜지션이 트리거되고 (동시에 v-leave가 제거됨), 트랜지션/애니메이션이 끝나면 제거되는 하나의 프레임을 추가했습니다.