transition 動(dòng)畫(huà)
<template> <div> <button @click="show = !show">Toggle</button> <div class="ab"> <transition name="adc"> <p v-show="show">I am show</p> </transition> </div> </div></template><script> export default { data () { return { show: true } } }</script><style> .adc-enter-active, .adc-leave-active { transition: all 2s ease-out; } .adc-enter, .adc-leave-to { opacity: 0; }</style>
css-transform動(dòng)畫(huà)
<template> <div> <button @click="show = !show">Toggle</button> <div class="ab"> <transition name="my-trans"> <p v-show="show">I am show</p> </transition> </div> </div></template><script> export default { data () { return { show: true } } }</script><style> .my-trans-enter-active, .my-trans-leave-active { transition: all .5s ease-out; } .my-trans-enter { transform: translateY(-100px); opacity: 0; } .my-trans-leave-active { transform: translateY(100px); }</style>
css-transform動(dòng)畫(huà)
動(dòng)態(tài)組件
<template> <div> <button @click="onToggle">Toggle</button> <div class="ab"> <transition name="fade"> //動(dòng)態(tài)組件 <div :is="componentView"></div> </transition> </div> </div></template><script> import comA from './components/a.vue' import comB from './components/b.vue' export default { components: {comA, comB}, data () { return { componentView: 'com-a' } }, methods: { onToggle () { if (this.componentView === 'com-a') { this.componentView = 'com-b' } else { this.componentView = 'com-a' } } } }</script><style> .fade-enter-active, .fade-leave-active { transition: all 2s ease-out; } .fade-enter, .fade-leave-to { opacity: 0; }</style>
動(dòng)態(tài)組件,mode為默認(rèn)
同時(shí)生效的進(jìn)入和離開(kāi)的過(guò)渡不能滿足所有要求,所以 Vue 提供了 過(guò)渡模式
in-out: 新元素先進(jìn)行過(guò)渡,完成之后當(dāng)前元素過(guò)渡離開(kāi)。
out-in: 當(dāng)前元素先進(jìn)行過(guò)渡,完成之后新元素過(guò)渡進(jìn)入。
默認(rèn)情況下是in-out
上述動(dòng)畫(huà),如果設(shè)置mode="out-in"
<transition name="fade" mode="out-in"> <div :is="componentView"></div></transition> mode="out-in"
注意:如果兩個(gè)標(biāo)簽名相同,是不會(huì)執(zhí)行動(dòng)畫(huà)的,若想執(zhí)行動(dòng)畫(huà),需要給標(biāo)簽設(shè)置不同的key來(lái)加以區(qū)分
<template> <div> <button @click="show = !show">Toggle</button> <div class="ab"> <transition name="fade" mode="out-in"> <p v-if="show" >i am show</p> <p v-else >not in show</p> </transition> </div> </div></template>
兩個(gè)標(biāo)簽名相同的動(dòng)畫(huà),未設(shè)置不同的key
如果設(shè)置了不同的key,就可以執(zhí)行動(dòng)畫(huà)了
<template> <div> <button @click="show = !show">Toggle</button> <div class="ab"> <transition name="fade" mode="out-in"> //設(shè)置不同的key <p v-if="show" key="1">i am show</p> <p v-else key="2">not in show</p> </transition> </div> </div></template>
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!
推薦閱讀:
Vue.js的計(jì)算屬性和數(shù)據(jù)監(jiān)聽(tīng)
Vue.js的事件綁定 - 內(nèi)置事件綁定、自定義事件綁定
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com