本文將市面上最常被使用的動效進(jìn)行了一次總結(jié)并逐條闡明這些設(shè)計背后的原理,每條原理后面我都會為朋友們選出一些大家最常用的 App 作為例子,順手打開就能體驗啦。
緩動(Easing)、偏移量和延遲(Offset & Delay)主要與時間相關(guān)。
○父子關(guān)系(Parenting)用于闡述元素之間的關(guān)系。
○變形(Transformation)、數(shù)值變化(Value Change)、遮罩(Masking)、覆蓋(Overlay)、生成(Cloning)多作用于加強(qiáng)元素自身的延續(xù)性。
○視差(Parallax)多作用于表明元素的層級關(guān)系。
○蒙層(Obscuration)、多維化(Dimensionality)、鏡頭平移與縮放(Dolly & Zoom)作用于表明元素與空間的關(guān)系。
1. 緩動(Easing)
當(dāng)運(yùn)動發(fā)生的時候,元素運(yùn)動速率的變化符合用戶的預(yù)期。自然界之中是很少存在完全線性的運(yùn)動的,沒有任何東西能夠完美的保持勻速運(yùn)動,緩動效果能夠讓運(yùn)動看起來更加接近自然,符合用戶的認(rèn)知,達(dá)到用戶的預(yù)期。
例子:你手機(jī)里面幾乎所有動態(tài)效果都是緩動的,看起來是不是非常舒服和諧呢?
2. 偏移量和延遲(Offset & Delay)
利用偏移和延遲來錯開元素的運(yùn)動時間,表明元素之間的層級與關(guān)系。設(shè)計師利用錯開運(yùn)動時間的方法,讓信息或界面元素按照有所區(qū)別的秩序進(jìn)退場,利用明顯的錯序運(yùn)動暗示用戶信息與界面元素之間或許存在某些區(qū)別,或利用錯序的方法吸引用戶的注意。但一般情況設(shè)計師不應(yīng)該使用太多的延時效果,因為譬如說網(wǎng)絡(luò)的加載本身就已經(jīng)需要時間,所以延遲效果的使用最好只用于技術(shù)。
例子:蘋果官網(wǎng)各商品詳情頁均有大量運(yùn)用。
3. 父子關(guān)系(Parenting)
在用戶進(jìn)行操作時,有父子關(guān)系的元素幫助用戶更好地理解它們之間的層級關(guān)系以及帶來更加有理可循的操作反饋。正如上面給出的這張動圖,位于下方的方塊的左右運(yùn)動,而位于上方的方塊跟隨下方方塊進(jìn)行左右運(yùn)動并同時進(jìn)行自己的縮放運(yùn)動,他們之間構(gòu)成了父子關(guān)系。說得簡單一點,父子關(guān)系就是子元素的某個屬性的值隨父元素的某個屬性參數(shù)的值按照一定的比例進(jìn)行變化。
例子:Google Allo 按住發(fā)送按鈕向上滑動,發(fā)送內(nèi)容字體變大。
4. 變形(Transformation)
利用變形來告知用戶元素的狀態(tài)或作用發(fā)生了改變。人們對于實物的變形是敏感的,合理的變形能夠清晰高效地將正確的信息以最高效、最令人愉悅的方式傳遞給用戶。注意,這里所說的變形并不一定要像上面那種動圖一樣動作那么大才算變形?;蛟S是顏色的變化,也有可能是角度的改變,這些都能達(dá)成我們想要的效果。
例子:知乎 Live 選擇贊助金額的動畫效果。
5. 數(shù)值變化(Value Change)
連續(xù)性的數(shù)值變化動態(tài)效果能讓用戶清晰地看見數(shù)值到底是在變多還是變少。關(guān)于這一點,我想多用兩張動圖呈現(xiàn),大家可以看到,數(shù)值變化有連續(xù)性動態(tài)效果的一張是不是更能讓你知道數(shù)字是在變多還是變少?想象一下,假如在某款理財 App 里面,這個數(shù)值是你的錢的話,那么數(shù)量的增加與減少這個信息對于用戶來說就非常重要了。
例子:京東金融手機(jī) App,“總資產(chǎn)”,及“白條”頁面的數(shù)值變化效果。
6. 遮罩(Masking)
遮罩型的動畫是在界面元素進(jìn)場或者退場的時候創(chuàng)造連續(xù)性效果的一種選擇。這種類型的動效似乎在 Material Design 里面比較常見,所以沒有使用過原生安卓系統(tǒng)的伙伴們可能比較陌生。
例子:原生安卓系統(tǒng)(5.0 以上 7.0以下版本可見,7.0取消了菜單按鈕,以上劃操作代替。)點擊菜單按鈕呼出菜單的動畫效果。美圖秀秀手機(jī) App 處于首頁的各個功能按鈕點擊后的轉(zhuǎn)場效果。
7. 覆蓋(Overlay)
覆蓋用于在扁平化(沒有厚度)設(shè)計的界面上闡明兩個相互獨(dú)立的元素的位置關(guān)系。在實際上沒有厚度、沒有縱深概念扁平化設(shè)計中,覆蓋動畫的使用能讓本來就非常有限的屏幕空間被更好的利用起來。
例子:微信橫劃刪除聊天記錄。
8. 蒙層(Obscuration)
蒙層與覆蓋非常相似,在沒有縱深概念的扁平化設(shè)計中表現(xiàn)縱深,它并不完全將處于下方的元素遮蓋住,而通常是通過高斯模糊或變暗的手段讓下方的元素保留一定的可視性。
例子:在 iOS 里面隨處可見的毛玻璃效果。
9. 生成(Cloning)
當(dāng)元素被生產(chǎn)出來時,表達(dá)元素與元素之間的連續(xù)性的關(guān)系。這種動畫能夠非常清晰地表達(dá)因某個操作而產(chǎn)生的一個或數(shù)個事件發(fā)生以及它們之間的關(guān)系。
例子:蘋果的 Messages 發(fā)送信息的效果。
10. 視差(Parallax)
界面元素同時開始運(yùn)動,但運(yùn)動的效率不同,構(gòu)成一種視差的效果。用戶在進(jìn)行滾動操作的時候通過視差效果可以在扁平化的界面里面表現(xiàn)空間中各元素的位置及層級關(guān)系。這種效果還非常的美觀高端,能讓整個頁面看起來更加活潑一些。通過視差的特性,我能引導(dǎo)用戶去關(guān)注應(yīng)該應(yīng)該關(guān)注的地方,運(yùn)動效率高的元素通常表達(dá)的是距離用戶更近,適合承載更加有使用性意義的重要信息,而運(yùn)動效率較低的元素通常表達(dá)的是距離用戶較遠(yuǎn),而且或許沒有承載什么重要的信息。
例子:蘋果官網(wǎng)各商品詳情頁。
11. 多維化(Dimensionality)
將扁平化的界面元素多維化從而表達(dá)空間中各元素的位置及層級關(guān)系。其實扁平并不符人類認(rèn)知邏輯的(而符合人類認(rèn)知邏輯幾乎可以說是可用性的第一原則),所以人們在扁平化的界面里面下足了功夫來在沒有縱深和厚度的界面里表達(dá)縱深和厚度,這句話讀起來非常拗口,但實際上就是這樣的。多維化的使用比較少,因為添加縱深感有很多種手法(覆蓋、蒙層、陰影,etc.),而多維化的開發(fā)成本是比較高的。
例子:iBooks 的翻頁效果和 Flipboard 的翻頁效果,滴滴打車退出呼叫狀態(tài)的 Appbar 動畫。
12. 鏡頭平移與縮放(Dolly & Zoom)
鏡頭平移與縮放聽起來好像是一樣的東西,事實上卻完全是兩碼事。鏡頭平移是拍攝的術(shù)語,被拍攝物保持靜止而鏡頭移動或鏡頭保持靜止而被攝物體進(jìn)行遠(yuǎn)離或接近鏡頭的前后移動,縮放是鏡頭與被攝物體在位置上保持靜止而被攝物自身進(jìn)行縮放。鏡頭平移與縮放效果表明元素與空間之間的關(guān)系,也能表現(xiàn)出一種縱深感。
例子:iOS 的解鎖動畫是典型的鏡頭平移效果,而雙擊放大圖片操作的那個動畫是典型的縮放效果。
-end-