摘要:也可以使用放置模態(tài)窗的切換狀態(tài)過(guò)渡部分結(jié)構(gòu)動(dòng)畫(huà)所有有趣的動(dòng)畫(huà)都是基于和可以給每一個(gè)實(shí)例一個(gè)特殊類動(dòng)畫(huà)部分結(jié)構(gòu)對(duì)于反彈對(duì)畫(huà),如果使用的話,需要設(shè)置大量關(guān)鍵幀,動(dòng)畫(huà)有很多適合動(dòng)畫(huà)的易于使用的鉤子。
背景
內(nèi)置的
過(guò)渡和動(dòng)畫(huà)的不同:
過(guò)渡就是從一個(gè)狀態(tài)向另一個(gè)狀態(tài)插入值(從起始狀態(tài),到結(jié)束狀態(tài),再回來(lái))
動(dòng)畫(huà)不同,可以在一個(gè)聲明中設(shè)置多個(gè)狀態(tài)(比如動(dòng)畫(huà)50%的位置設(shè)置一個(gè)關(guān)鍵幀,
然后在70%的位置,也可以設(shè)置延遲屬性實(shí)現(xiàn)復(fù)雜運(yùn)動(dòng))
CSS過(guò)渡
假設(shè)有一個(gè)簡(jiǎn)單的模態(tài)窗。通過(guò)點(diǎn)擊按鈕顯示或隱藏模態(tài)窗??梢赃@樣做:
創(chuàng)建一個(gè)按鈕的vue實(shí)例,在實(shí)例中創(chuàng)建一個(gè)子組件,設(shè)置數(shù)據(jù)的狀態(tài)
這樣可以通過(guò)切換布爾值并添加事件處理實(shí)現(xiàn)子組件的顯示及隱藏。
可以使用v-if或者v-show來(lái)切換組件的可見(jiàn)性。也可以使用slot放置模態(tài)窗的切換狀態(tài)
過(guò)渡部分結(jié)構(gòu):
.fade-enter-active, .fade-leave-active {
transition: opacity 0.25s ease-out;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
CSS動(dòng)畫(huà)
所有有趣的動(dòng)畫(huà)都是基于enter-active和leave-active
可以給每一個(gè)實(shí)例一個(gè)特殊類
enter-active-class="toasty"
leave-active-class="bounceOut"
動(dòng)畫(huà)部分結(jié)構(gòu):name="ballmove"
enter-active-class="bouncein"
leave-active-class="rollout">
對(duì)于反彈對(duì)畫(huà),如果使用CSS的話,需要設(shè)置大量關(guān)鍵幀,
@mixin ballb($yaxis: 0) {
transform: translate3d(0, $yaxis, 0);
}
@keyframes bouncein {
1% { @include ballb(-400px); }
20%, 40%, 60%, 80%, 95%, 99%, 100% { @include ballb() }
30% { @include ballb(-80px); }
50% { @include ballb(-40px); }
70% { @include ballb(-30px); }
90% { @include ballb(-15px); }
97% { @include ballb(-10px); }
}
.bouncein {
animation: bouncein 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
.ballmove-enter {
@include ballb(-400px);
}
@keyframes rollout {
0% { transform: translate3d(0, 300px, 0); }
100% { transform: translate3d(1000px, 300px, 0); }
}
@keyframes ballroll {
0% { transform: rotate(0); }
100% { transform: rotate(1000deg); }
}
.rollout {
width: 60px;
height: 60px;
animation: rollout 2s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;
div {
animation: ballroll 2s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;
}
}
JS動(dòng)畫(huà)
有很多適合動(dòng)畫(huà)的易于使用的JS鉤子。所有的鉤子都會(huì)傳入el參數(shù),除了動(dòng)畫(huà)鉤子(enter和leave)
還會(huì)傳入done作為參數(shù)(它的作用就是告知Vue動(dòng)畫(huà)結(jié)束)
@enter="enter"
@after-enter="afterEnter"
@enter-cancelled="enterCancelled"
@before-Leave="beforeLeave"
@leave="leave"
@after-leave="afterLeave"
@leave-cancelled="leaveCancelled"
:css="false">
從最基本的層面看,這是開(kāi)始動(dòng)畫(huà)和結(jié)束動(dòng)畫(huà)所需的,包括相關(guān)的方法:
@leave="leaveEl"
:css="false">
methods: {
enterEl(el, done) {
//entrance animation done();
},
leaveEl(el, done) {
//exit animation done();
},
}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/106529.html
摘要:也可以使用放置模態(tài)窗的切換狀態(tài)過(guò)渡部分結(jié)構(gòu)動(dòng)畫(huà)所有有趣的動(dòng)畫(huà)都是基于和可以給每一個(gè)實(shí)例一個(gè)特殊類動(dòng)畫(huà)部分結(jié)構(gòu)對(duì)于反彈對(duì)畫(huà),如果使用的話,需要設(shè)置大量關(guān)鍵幀,動(dòng)畫(huà)有很多適合動(dòng)畫(huà)的易于使用的鉤子。 背景內(nèi)置的和組件同時(shí)支持CSS和JS鉤子過(guò)渡和動(dòng)畫(huà)的不同:過(guò)渡就是從一個(gè)狀態(tài)向另一個(gè)狀態(tài)插入值(從起始狀態(tài),到結(jié)束狀態(tài),再回來(lái))動(dòng)畫(huà)不同,可以在一個(gè)聲明中設(shè)置多個(gè)狀態(tài)(比如動(dòng)畫(huà)50%的位置設(shè)置一...
摘要:供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。我們像下面這樣使用這個(gè)指令大多數(shù)情況下,我們只需要使用與鉤子函數(shù)。里提供了函數(shù)的簡(jiǎn)寫(xiě)形式鉤子函數(shù)有兩個(gè)常用的參數(shù)和。其他用法與全局自定義指令一致。 一、vue生命周期 vue實(shí)例從創(chuàng)建到銷毀的過(guò)程,稱為生命周期,共有八個(gè)階段。 這八個(gè)階段里分別有一個(gè)叫做鉤子函數(shù)的實(shí)例選項(xiàng)。供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。 beforeCreate(){ //組件實(shí)例剛...
摘要:供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。我們像下面這樣使用這個(gè)指令大多數(shù)情況下,我們只需要使用與鉤子函數(shù)。里提供了函數(shù)的簡(jiǎn)寫(xiě)形式鉤子函數(shù)有兩個(gè)常用的參數(shù)和。其他用法與全局自定義指令一致。 一、vue生命周期 vue實(shí)例從創(chuàng)建到銷毀的過(guò)程,稱為生命周期,共有八個(gè)階段。 這八個(gè)階段里分別有一個(gè)叫做鉤子函數(shù)的實(shí)例選項(xiàng)。供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。 beforeCreate(){ //組件實(shí)例剛...
摘要:供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。我們像下面這樣使用這個(gè)指令大多數(shù)情況下,我們只需要使用與鉤子函數(shù)。里提供了函數(shù)的簡(jiǎn)寫(xiě)形式鉤子函數(shù)有兩個(gè)常用的參數(shù)和。其他用法與全局自定義指令一致。 一、vue生命周期 vue實(shí)例從創(chuàng)建到銷毀的過(guò)程,稱為生命周期,共有八個(gè)階段。 這八個(gè)階段里分別有一個(gè)叫做鉤子函數(shù)的實(shí)例選項(xiàng)。供用戶在相應(yīng)的階段對(duì)其進(jìn)行操作。 beforeCreate(){ //組件實(shí)例剛...
摘要:提供了兩種向組件傳遞參數(shù)的方式。子路由項(xiàng)路徑不要使用開(kāi)頭,以開(kāi)頭的嵌套路徑會(huì)被當(dāng)作根路徑。路由實(shí)例的方法這里學(xué)習(xí)兩個(gè)路由實(shí)例的方法和。實(shí)際上,是通過(guò)不同的將這些資源加載后打包,然后輸出打包后文件。 一、vue-router 1、簡(jiǎn)介 我們經(jīng)常使用vue開(kāi)發(fā)單頁(yè)面應(yīng)用程序(SPA)。在開(kāi)發(fā)SPA過(guò)程中,路由是必不可少的部分,vue的官方推薦是vue-router。單頁(yè)面應(yīng)用程序看起來(lái)好像...
閱讀 2921·2021-11-22 11:56
閱讀 3632·2021-11-15 11:39
閱讀 955·2021-09-24 09:48
閱讀 824·2021-08-17 10:14
閱讀 1404·2019-08-30 15:55
閱讀 2805·2019-08-30 15:55
閱讀 1394·2019-08-30 15:44
閱讀 2843·2019-08-30 10:59