轉(zhuǎn)場是一種常見的動畫效果,在Web和移動端開發(fā)中常常需要使用。Vue提供了非常方便的方式來實(shí)現(xiàn)轉(zhuǎn)場效果。
Vue中的轉(zhuǎn)場效果是通過transition組件來實(shí)現(xiàn)的。要使用transition,我們需要在Vue實(shí)例中添加一個(gè)名為transition
的組件,該組件包含兩個(gè)狀態(tài):enter
和leave
。事實(shí)上,每個(gè)狀態(tài)都是一個(gè)transition鉤子函數(shù),enter
進(jìn)入時(shí)鉤子函數(shù)接受三個(gè)參數(shù):元素、done和vm,leave
離開時(shí)鉤子函數(shù)接受兩個(gè)參數(shù):元素和done。我們可以在這些鉤子函數(shù)中指定進(jìn)入和離開的動畫效果。
<transition enter-active-class="fade-enter-active" leave-active-class="fade-leave-active">
<p v-if="show">Hello, World!</p>
</transition>
在我們的示例中,我們添加了一個(gè)transition
組件來包裝一個(gè)p
標(biāo)簽,根據(jù)展示條件show
來控制p
標(biāo)簽的顯示和隱藏。在transition組件中,我們指定了兩個(gè)類名:enter-active-class
和leave-active-class
,這些類名會在進(jìn)入和離開的時(shí)候加入到p
標(biāo)簽中,以觸發(fā)動畫效果。
.fade-enter-active {
animation: enter .5s;
}
.fade-leave-active {
animation: leave .5s;
}
@keyframes enter {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes leave {
from { opacity: 1; }
to { opacity: 0; }
}
在樣式中,我們定義了兩個(gè)動畫:enter
和leave
,分別控制進(jìn)入和離開時(shí)的漸變效果。我們指定了動畫過渡時(shí)間為.5s
,并且使用@keyframes
來定義動畫的具體效果。通過指定from
和to
,我們可以讓元素從透明到不透明,從不透明到透明,實(shí)現(xiàn)一種漸變的過渡效果。
通過上述代碼,我們就可以實(shí)現(xiàn)一個(gè)簡單的過渡效果。Vue提供了非常豐富的動畫組件和API,我們可以根據(jù)需要定義各種各樣的動態(tài)效果,無論是在Web開發(fā)中還是在移動端開發(fā)中都可以使用。