當我們開發網頁時,常常需要一些可以展開收縮的模塊,這可以使頁面更加簡潔明了。在Vue中,使用
首先,我們需要在Vue中定義一個data屬性,用來保存當前展開與否的狀態,以及收縮和展開時的動畫過渡效果:
data () {
return {
isExpanded: false,
transitionName: 'fade'
}
}
這里我們定義了一個布爾類型的isExpanded,用來保存當前是否展開,以及一個transitionName,用來指定收縮和展開時的過渡效果。在這個例子中,我們指定了一個名為fade的過渡效果,在下面的CSS代碼中會有說明。
接下來,在模板中,我們可以根據當前的isExpanded值來動態地添加或刪除
<transition name="transitionName">
<div v-if="isExpanded">
// 展開的內容
</div>
</transition>
<div v-else>
// 收縮的內容
</div>
這里我們使用了Vue的 下面,我們還需要編寫對應的CSS樣式來實現fade過渡效果: 這里的CSS代碼就是為我們在data屬性中指定的transitionName過渡效果服務的。我們定義了兩個CSS類fade-enter-active和fade-leave-active,并分別使用了transition屬性來指定了opacity的過渡時間,從而實現了淡入淡出效果。同時,我們還定義了fade-enter和fade-leave-to這兩個CSS類,用來指定收縮和展開時的不同透明度。 到這里,我們就完成了一個Vue中動態展開收縮的效果。不過需要注意的是,展開與收縮的實現方式會因具體需求而異,如果需要展開多個塊,可以使用v-for來響應式地生成模板;如果需要展開指定的塊,可以使用@click等事件綁定預設邏輯等方式。.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}