摘要:既然我們知道了方法,我們就來給它加一個簡單的動畫。動畫中還給我們提供了一些鉤子函數(shù),我們可以使用鉤子函數(shù)構(gòu)建動畫。它會告知我們的動畫完成,我們綁定了為,告訴組件跳過的檢測,使用。
項目開發(fā)中動畫有著很重要的作用,而且也是用到的地方非常多,例如:鼠標(biāo)的進(jìn)入離開,彈窗效果,組件的顯示隱藏,列表的切換等等,可以說我們網(wǎng)頁上的動畫無處不在,也有人說了,這些東西也可以不使用動畫。
對,你說的沒錯可以不使用,但是,首先你要說服你的產(chǎn)品經(jīng)理咱能不能簡單點(diǎn),不搞這么多虛的來點(diǎn)實(shí)際的,說完之后我估計你們倆得立馬干起來,其次,在你的網(wǎng)頁上不使用動畫不夠逼格啊,而且咱們的網(wǎng)頁也不夠生動,沒有活力,由此可見動畫的不可或缺性。
上面只是開個玩笑,下面咱們進(jìn)入主題,看看 Vue 中如何更好更簡單的添加動畫。
首先,Vue 在插入,修改或者移除 DOM 時,提供了多種不同的添加動畫的方法,在 Vue 中我們使用
先來看看我們要實(shí)現(xiàn)一個什么樣子的案例效果
圖中的例子是一個非常常見的圖片切換效果,不過在這個例子中我們只是單純的實(shí)現(xiàn)圖片的切換,看起來非常的生硬,沒有任何的過渡效果,下面我們來給圖片加一點(diǎn)動畫的效果,讓它看起來非常的有逼格。
CSS 過渡被
v-enter/v-leave:動畫的第一幀
v-enter-acive/v-leave-active:動畫運(yùn)行的階段,一些過渡屬性會放置在這里,如:時間,延遲等
v-enter-to/v-leave-to:動畫結(jié)束,最后一幀
官網(wǎng)上的一張圖片非常友好的展示了這個切換的過程。
v- 是 Vue 中默認(rèn)的類名前綴,我們在使用的過程中如果一直使用默認(rèn)的命名方式的話,必然會導(dǎo)致一些沖突,所以 Vue 給我們提供了一個自定義命名的方案,我們只需要給
既然我們知道了方法,我們就來給它加一個簡單的動畫。
CSS 動畫
與上面 CSS 過渡不同的是,我們這里說的 CSS 動畫是利用 @keyframes 來創(chuàng)建與上面類似的動畫效果。
使用第三方動畫庫Vue 中給我們提供了自定義 CSS 類名的方法,非常好的支持了與第三方動畫庫的結(jié)合。
enter-class / leave-class
enter-active-class / leave-active-class
enter-to-class / leave-to-class
上面兩個動畫都是我們自己動手寫出來的,但是有些時候我們自己手寫的并不是那么完美,或者項目的時間比較緊張,這個時候選擇第三方庫就是一個比較好的方案。我們繼續(xù)利用 Animate.css 動畫庫修改我們上面的例子。
JavaScript 動畫![]()
Vue 中還給我們提供了一些鉤子函數(shù),我們可以使用 JavaScript 鉤子函數(shù)構(gòu)建動畫。
所有鉤子都會傳入一個 el(元素)參數(shù),enter/leave 函數(shù)還會傳入一個 done 函數(shù)作為參數(shù)。它會告知我們的動畫完成,我們綁定了 css 為 false,告訴組件跳過 CSS 的檢測,使用 JavaScript。
我們結(jié)合 Velocity.js 動畫,來修改完成我們的動畫效果。
過渡模式![]()
我們再來回頭看看上面的例子,不管我們使用何種方式實(shí)現(xiàn)的動畫,你會發(fā)現(xiàn)一個問題就是,動畫在切換的時候兩者(進(jìn)入/離開)是同時進(jìn)行的,有些時候,我們并不希望產(chǎn)生這種效果,對我們的動畫效果非常的不友好,比如我們看看下面的這個例子。
很顯然,這種是非常不好的效果,值得高興的是 Vue 中給我們提供了一個解決方案-- 過渡模式,我們不需要增加額外的代碼,只需要修改下特性即可。
Vue 給我們提供了兩種過渡模式。
in-out:新元素先進(jìn)行過渡,完成之后當(dāng)前元素過渡離開。
out-in:當(dāng)前元素先進(jìn)行過渡,完成之后新元素過渡進(jìn)入
過渡模式只會在相互切換的元素中才會生效
下面我們就用過渡模式修改我們上面的案例。
總結(jié)![]()
![]()
Vue 給我們提供了比較直觀靈活的 API,方便我們在項目中添加動畫的效果。
Vue 中除了這些單元素的動畫以外還提供了
文中如有不足之處,歡迎留言指正,如果本文對你有幫助,歡迎轉(zhuǎn)發(fā)點(diǎn)贊。
關(guān)注微信公眾號:六小登登。領(lǐng)取全套學(xué)習(xí)資源
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/99445.html
摘要:今天我們繼續(xù)使用的擼我們的實(shí)戰(zhàn)項目,只有在實(shí)戰(zhàn)中我們才會領(lǐng)悟更多,光紙上談兵然并卵,繼上篇我們的一個案例引發(fā)的動態(tài)組件與全局事件綁定總結(jié)之后,今天來聊一聊我們?nèi)绾卧陧椖恐惺褂眠f歸組件。 今天我們繼續(xù)使用 Vue 的擼我們的實(shí)戰(zhàn)項目,只有在實(shí)戰(zhàn)中我們才會領(lǐng)悟更多,光紙上談兵然并卵,繼上篇我們的《Vue一個案例引發(fā)的動態(tài)組件與全局事件綁定總結(jié)》 之后,今天來聊一聊我們?nèi)绾卧陧椖恐惺褂眠f歸組...
摘要:我們需要的最好效果肯定是當(dāng)前的全局事件就在當(dāng)前的組件下產(chǎn)生作用,當(dāng)我們切換到其他組件時,事件自動刪除,于是我可能想到的就是利用鉤子函數(shù)去刪除這個全局事件。 最近在自學(xué) Vue 也了解了一些基本用法,也記錄了一些筆記有興趣的朋友可以去查看我的其他文章,技術(shù)這東西真的不能光靠看,看是沒有的,你必須要動手實(shí)踐,只有在實(shí)戰(zhàn)項目中才能發(fā)現(xiàn)問題,才能發(fā)現(xiàn)我們沒有掌握的知識點(diǎn),然后發(fā)現(xiàn)問題解決問題,...
摘要:我們就來說說如何創(chuàng)建一個靈活的高復(fù)用的組件。在一款優(yōu)秀的組件庫中有這么兩個組件與。什么是官方說法混入是一種分發(fā)組件中可復(fù)用功能的非常靈活的方式。對象可以包含實(shí)例中的所有選項,當(dāng)組件使用對象時,對象中的所有選項將和組件中的選項進(jìn)行合并。 我們都知道 Vue 采用的是一種組件化開發(fā)模式,組件在 Vue 中一個非常重要的核心概念。每個組件都是一個完整的實(shí)例,組件的創(chuàng)建,組件間的通訊,組件如何...
摘要:調(diào)用鉤子渲染一波,然后把渲染后的元素賦值給并取代。大和小同為漸進(jìn)式框架,提供了大量的對數(shù)據(jù)視圖去進(jìn)行處理。微信小程序我選擇用原生主要是因?yàn)轭A(yù)覽還要再開一個很不開心。 前言 刷了一波 react 文檔,想找個東西練練手,在網(wǎng)上一看,什么實(shí)現(xiàn)一個 網(wǎng)易云、酷狗音樂、豆瓣 感覺找接口都夠費(fèi)神了,之前做過 vue 實(shí)現(xiàn)餓了么的一個系統(tǒng),圖片資源,mock 數(shù)據(jù)齊全,再加之樣式寫過了,所以直接就...
摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準(zhǔn)備轉(zhuǎn)正了一般來說,差不多到了轉(zhuǎn)正的時候,會進(jìn)行總結(jié)或者分享會議那么今天我就把看過的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準(zhǔn)備轉(zhuǎn)正了!一般來說,差不多到了轉(zhuǎn)正的時候,會進(jìn)行總結(jié)或者分享會議!那么今天我就...
閱讀 1650·2021-11-11 10:59
閱讀 2657·2021-09-04 16:40
閱讀 3702·2021-09-04 16:40
閱讀 3021·2021-07-30 15:30
閱讀 1723·2021-07-26 22:03
閱讀 3193·2019-08-30 13:20
閱讀 2263·2019-08-29 18:31
閱讀 469·2019-08-29 12:21