這篇文章將為大家詳細講解有關vue元素如何實現(xiàn)動畫過渡效果,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
睢寧縣網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司。
1 在 vue 中,使用
標簽包含著的單個子元素在使用 v-show
或 v-if
切換顯示隱藏前,會先判斷是否有對應的 class
樣式能匹配到該子元素上:
v-leave 當前元素準備從顯示轉變成隱藏,在動畫開始前添加到元素上,動畫一旦開始會立即刪除;
v-leave-active 在動畫過渡過程中,元素一直擁有該樣式,直到動畫結束則自動刪除,用于設置過渡的效果;
v-leave-to 在動畫過渡過程中,元素一直擁有該樣式,直到動畫結束則自動刪除,用于設置動畫最終的效果;
事例中,當點擊 button,div 并不會馬上 display: none, 而是首先設置 v-leave ,下一刻即刪除 v-leave ,同時添加 v-leave-active v-leave-to,當 v-leave-active 中的過渡時間執(zhí)行完成,則刪除 v-leave-active v-leave-to,同時添加 display: none。
v-enter 當前元素準備從隱藏轉變成顯示,在動畫開始前添加到元素上,動畫一旦開始會立即刪除;
v-enter-active 在動畫過渡過程中,元素一直擁有該樣式,直到動畫結束則自動刪除,用于設置過渡的效果;
v-enter-to 在動畫過渡過程中,元素一直擁有該樣式,直到動畫結束則自動刪除,用于設置動畫最終的效果;
事例中,當點擊 button,div 馬上清除 display: none, 然后設置 v-enter ,下一刻即刪除 v-enter ,同時添加 v-enter-active v-enter-to,當 v-enter-active 中的過渡時間執(zhí)行完成,則刪除 v-enter-active v-enter-to。
2 自定義動畫類名:
該效果與上一例效果完全一致的,transition
元素可以使用 name
屬性來指定使用的類名前綴,從而代替 v-
字段,例如事例中的 name="slide"
使本來的 v-enter
變成了 slide-enter
。
3 transition 與 animation 同時使用時
事例中,動畫同時指定了 transition 和 animation 動畫, transition 元素的 type 屬性可以指定以哪種動畫的時間為元素的結束時間,如果不指定動畫監(jiān)控的方式,則會以最長時間的為準。
4 javascript 監(jiān)聽動畫
一旦使用 js 事件,原 css 動畫過渡效果就會無效,官方推薦在
上設置 v-bind:css="false" 可令 vue 內部機制免去監(jiān)測 css 動畫事件回調,提高性能。enter 和 leave 事件需手動調用 done 方法,不然事件一直不會調用后續(xù)的 after 事件,沒有調用 after 事件但是又有其他事件開始了,則被視為動畫被 cancel 了。
5 頁面初始化時的動畫:
appear 屬性表示開啟初始化動畫,appear-class 屬性指定初始化前的樣式,appear-active-class 屬性指定初始化動畫過程的樣式;
transition 動畫無法在初始化動畫中起效,而 animation 動畫則可以;
before-appear appear after-appear 是事件回調,看事例相當清晰。
6 動畫元素的 key :
show1 為什么沒有動畫效果呢?因為 vue 會把切換中的兩個 button 識別成同一個元素,只是修改了 button 中的不同內容,所以實際上頁面并沒有發(fā)生 DOM 元素的切換;
如果要讓 vue 明確識別出這是2個不同的 button 元素,則為每個元素指定不同的 key 屬性的值。
7 元素切換的動畫模式:
transition 默認是同時執(zhí)行2個元素的切換動畫的,案例中紅色的 off 按鈕其實是會同時向左移動的,只是因為布局上沒有脫離布局流,被 on 按鈕頂住,無法移動;
mode="in-out" 可以使切換元素先執(zhí)行將要顯示元素的動畫,再執(zhí)行將要隱藏元素的動畫;
mode="out-in" 可以使切換元素先執(zhí)行將要隱藏元素的動畫,再執(zhí)行將要顯示元素的動畫;
8 多元素動畫:
{{item}} {{item}}
transition 里面只能放置單個元素或使用 v-if v-show 切換的單個元素,要想使用多個元素的動畫,必須使用 transition-group;
transition-group 默認會在 DOM 里渲染成 span 標簽,可使用 tag="ul" 指定渲染成其他標簽;
transition-group 必須為每一個子元素指定 key;
8 多元素的位移動畫:
{{item}}
transition-group 允許在每個元素移動時,添加 v-move 的樣式,移動完成后自動清除該樣式;
transition 的屬性, transition-group 都有,包括 name enter leave;
關于“vue元素如何實現(xiàn)動畫過渡效果”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。