詳解vue過度效果與動(dòng)畫transition使用示例
先看一個(gè)示例

代碼如下
<template>
<div align="center" style="margin-top: 100px;">
<button @click="show= !show" >測試</button>
<transition>
<div v-if="show">
<p>這是一段文字</p>
</div>
</transition>
</div>
</template>
<script>
export default {
name: 'transitionTest',
data () {
return {
show: true
}
}
}
</script>
<style scoped>
.v-enter-active, .v-leave-active {
transition: all .5s ;
}
.v-enter {
transform: translateY(50px);
opacity: 0;
}
.v-leave-active {
transform: translateY(50px);
opacity: .5;
}
</style>
包裹了一個(gè)div組件,點(diǎn)擊按鈕實(shí)現(xiàn)動(dòng)畫效果。一般搭配v-if、v-show、動(dòng)態(tài)組件、組件根節(jié)點(diǎn)來使用。
transition鉤子函數(shù)
transition提供六個(gè)鉤子函數(shù),提供給我們在不同時(shí)機(jī)編寫相應(yīng)的動(dòng)畫效果。以下是此六個(gè)鉤子函數(shù)執(zhí)行時(shí)機(jī)
1.v-enter:進(jìn)入過渡開始狀態(tài)。在元素被插入之前生效,在元素被插入之后的下一幀移除。
2.v-enter-active:進(jìn)入過渡生效時(shí)的狀態(tài)。這個(gè)類可以被用來定義進(jìn)入過渡的過程時(shí)間,延遲和曲線函數(shù)。
3.v-enter-to:進(jìn)入過渡的結(jié)束狀態(tài)。在元素被插入之后下一幀生效 (與此同時(shí) v-enter 被移除),在過渡/動(dòng)畫完成之后移除。
4.v-leave: 離開過渡的開始狀態(tài)。在離開過渡被觸發(fā)時(shí)立刻生效,下一幀被移除。
5.v-leave-active:離開過渡生效時(shí)的狀態(tài)。這個(gè)類可以被用來定義離開過渡的過程時(shí)間,延遲和曲線函數(shù)。
6.v-leave-to:離開過渡的結(jié)束狀態(tài)。在離開過渡被觸發(fā)之后下一幀生效 (與此同時(shí) v-leave 被刪除),在過渡/動(dòng)畫完成之后移除
自定義過渡類名
在頁面中有多個(gè)地方需要進(jìn)行過渡效果,如果使用vue提供的默認(rèn)那6個(gè)鉤子函數(shù),那么所有要過渡地方的過渡效果都是一樣的。如果需要在不同的場合定義不同的動(dòng)畫效果,就需要我們自己定義專屬于各個(gè)過渡效果的類名。解決辦法給transition標(biāo)簽添加name屬性,在name屬性中寫入自己的類名前綴。例如,那么在使用類名的時(shí)候就是這樣的:.my-trans-leave、.my-trans-enter-to。如:
<transition name="my-trans" mode="out-in">
<router-view v-if="!$route.meta.keepAlive"></router-view>
</transition>
style寫法,my-trans是“.my-trans-enter-active”的前綴
<style>
.my-trans-enter-active,
.my-trans-leave-active {
transition: all .2s;
opacity: 1;
}
.my-trans-enter {
transition: all .2s;
opacity: 0;
}
.my-trans-leave-to {
transition: all .2s;
opacity: 0;
}
</style>
transition-group使用
對列表進(jìn)行過渡渲染時(shí),就必須使用transition-group元素包裹。點(diǎn)擊列表中內(nèi)容,按照以下動(dòng)畫移除,示例如下

<template>
<div class="main_css">
<transition-group name="slide">
<li v-for="(item,i) in list" :key="item.id" @click="del(i)">
{{ item.id }} --- {{ item.name }}
</li>
</transition-group>
</div>
</template>
<script>
export default {
name: 'transitionGroupTest',
data () {
return {
list: [{
id: 1,
name: '紅燒魚'
},
{
id: 2,
name: '炒土豆'
},
{
id: 3,
name: '燒茄子'
}
]
}
},
methods: {
del (i) {
this.list.splice(i, 1)
}
}
}
</script>
<style scoped>
.main_css {
margin-left: 50px;
margin-top: 50px;
}
.slide-enter-active {
transition: all .5s linear;
}
.slide-leave-active {
transition: all .1s linear;
}
.slide-enter {
transform: translateX(-100%);
opacity: 0;
}
.slide-leave-to {
transform: translateX(110%);
opacity: 0;
}
</style>
小結(jié)
過度與動(dòng)畫,使用transition標(biāo)簽完成,同時(shí)提供6個(gè)鉤子函數(shù)。全局動(dòng)畫在app.vue中,在router-view組件中包裹transition,如:;給transition標(biāo)簽添加name屬性定義過渡類名,實(shí)現(xiàn)局部變化。
以上就是詳解vue過度與動(dòng)畫transition使用示例的詳細(xì)內(nèi)容,更多關(guān)于vue過度與動(dòng)畫transition的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Vue組件實(shí)現(xiàn)一個(gè)簡單彈窗效果
這篇文章主要介紹了使用Vue組件實(shí)現(xiàn)一個(gè)簡單彈窗效果,本文主要內(nèi)容會(huì)涉及到彈窗遮罩的實(shí)現(xiàn), slot 插槽的使用方式,props 、 $emit 傳參,具體組件代碼也傳上去了。需要的朋友可以參考下2018-04-04
vue-auto-focus: 控制自動(dòng)聚焦行為的 vue 指令方法
今天小編就為大家分享一篇vue-auto-focus: 控制自動(dòng)聚焦行為的 vue 指令方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Vue mock.js模擬數(shù)據(jù)實(shí)現(xiàn)首頁導(dǎo)航與左側(cè)菜單功能
這篇文章主要介紹了Vue mock.js模擬數(shù)據(jù)實(shí)現(xiàn)首頁導(dǎo)航與左側(cè)菜單功能,mockjs是用來模擬產(chǎn)生一些虛擬的數(shù)據(jù),可以讓前端在后端接口還沒有開發(fā)出來時(shí)獨(dú)立開發(fā)。我們可以使用真實(shí)的url,mockjs可以攔截ajax請求,返回設(shè)定好的數(shù)據(jù)2022-09-09
vue keep-alive 動(dòng)態(tài)刪除組件緩存的例子
今天小編就為大家分享一篇vue keep-alive 動(dòng)態(tài)刪除組件緩存的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue實(shí)現(xiàn)簡易選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡易選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
vue?elementUi中的tabs標(biāo)簽頁使用教程
Tabs 組件提供了選項(xiàng)卡功能,默認(rèn)選中第一個(gè)標(biāo)簽頁,下面這篇文章主要給大家介紹了關(guān)于vue?elementUi中的tabs標(biāo)簽頁使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
vuejs選中當(dāng)前樣式active的實(shí)例
今天小編就為大家分享一篇vuejs選中當(dāng)前樣式active的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
利用Electron簡單擼一個(gè)Markdown編輯器的方法
這篇文章主要介紹了利用Electron簡單擼一個(gè)Markdown編輯器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06

