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