過渡效果在交互體驗(yàn)中的重要性不言而喻。以往我們使用js或Jquery添加或移除元素的類(class),搭配CSS中定義好的樣式,再引用一些javascript庫之后,可以做作出非常復(fù)雜,驚艷的動態(tài)效果,不過這套方法還是太繁瑣。
vue.js內(nèi)置了一套過渡系統(tǒng),可以在元素從DOM中插入或移除時自動應(yīng)用過渡效果。vue會在是黨的時機(jī)觸發(fā)css過渡或者動畫,你也可以提供相應(yīng)的javascript鉤子函數(shù)在過渡過程中執(zhí)行自定義的DOM操作。
每個過渡效果,都需要在目標(biāo)元素上使用transition特性。
<div v-if="show" transition="my-style">顯示</div>
transition的特性可以與以下指令一起搭配使用:
1.v-if 2.v-show 3.v-for 4.動態(tài)組件
還有其它的一些指令或資源,大家可以自行查找。
完整代碼實(shí)例如下:
<div v-if="show" :transition="expand"></div> // expand必需事先定義好,expand后面寫樣式要用(關(guān)鍵) <transition name="expand"><div v-if="show">顯示</div></transition>這樣的嵌套也可以 .expand-transition { // 必需寫 transition: all .3s ease; height: 30px; padding: 10px; background-color: #eee; overflow: hidden; } .expand-enter{ //開始進(jìn)入過渡,元素被插入生效 transition:opacity .5s; } .fade-leave-active { // 結(jié)束狀態(tài) opacity:0; }
當(dāng)然有開始肯定是有結(jié)束的狀態(tài),它其實(shí)是有四個(CSS類)名在enter/leave的狀態(tài)中切換。
1.v-enter:定義進(jìn)入過渡的開始狀態(tài),在元素被插入的時生效,在下一個幀移除
2.v-enter-active:定義進(jìn)入過渡的結(jié)束狀態(tài),在元素被插入的時候生效,在transition/animation完成之后移除
3.v-leave:定義離開過渡的開始狀態(tài),在離開過渡被觸發(fā)時生效,在下一幀移除
4.v-leave-active:定義離開過渡的開始狀態(tài),在離開過渡被觸發(fā)時生效,在下一個幀移除
根據(jù)以上四個狀態(tài),就可以完整的寫好一個css的一個過渡效果,比如頁面從窗口左側(cè)劃入進(jìn)場,這樣是不是很酷啊?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com