一、實現(xiàn)過渡動畫效果的原理
-
隱藏時,給標簽添加的類名,通過第一幀到第二幀opacity的變化實現(xiàn)動畫

-
顯示時,給標簽添加的類名,通過第一幀到第二幀opacity的變化實現(xiàn)動畫
enter.png
二、如何使用
首先用<transition> 標簽包裹需要實現(xiàn)動畫效果的標簽,指定<transition> 標簽的name 屬性,這個屬性是用來指定類名的前綴的,如果不指定這個屬性,類名會以v- 開始,指定該屬性后,類名會以指定的屬性值開始。
沒有指定name屬性的類名,如:v-enter
指定name屬性的類名,如:fade-enter
<div id="app">
<transition name="fade">
<div v-if="show">hello world</div>
</transition>
<button @click="handleClick()">點擊我</button>
</div>
三、案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>動畫</title>
<style type="text/css">
/*類名會存在于整個動畫過程,直至動畫結束后移除*/
.fade-enter-active,
.fade-leave-active{
transition: opacity 2s;
}
/*從第一幀到第二幀的過程中,opacity從0變?yōu)?,transition監(jiān)聽到opacity的變化,會根據(jù)指定的時間內完成變化 */
.fade-enter {
opacity: 0; /*當?shù)诙瑫r,會將fade-enter這個類移除,*/
}
/*從第一幀到第二幀的過程中,opacity從1變?yōu)?*/
.fade-leave-to {
opacity: 0;
}
</style>
</head>
<body>
<div id="app">
<transition name="fade">
<div v-if="show">hello world</div>
</transition>
<button @click="handleClick()">點擊我</button>
</div>
</body>
<script src="../js/vue.js" type="text/javascript"></script>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
show: true
},
methods: {
handleClick: function(){
this.show = this.show === true ? false : true;
}
}
})
</script>
</html>

