摘要:了解的應(yīng)該會(huì)明白,一般在設(shè)計(jì)好基本的形狀的時(shí)候,使用貝賽爾曲線工具,可以做很多的變化,從而使用一個(gè)基本的形狀可以做出不同形狀的變化??梢院蛯傩?,,元素和對(duì)象一起工作,制作出各種高性能,平滑過渡的動(dòng)畫效果。下面就針對(duì)來介紹下使用來實(shí)現(xiàn)動(dòng)畫。
何為Morphing動(dòng)畫
開始之前,先來了解下什么是Morphing動(dòng)畫。所謂Morphing動(dòng)畫是表示,同一個(gè)模型,從一個(gè)形狀變到另一個(gè)形狀。如下圖所示,從形狀1漸變到形狀2,再從形狀2漸變到形狀3,最后從形狀3漸變到形狀1,以此循環(huán)往復(fù)。
從上圖可以看到像這樣的Morphing動(dòng)畫簡直是為SVG量身定制的,因?yàn)镾VG中的路徑原本就是由很多的坐標(biāo)點(diǎn)構(gòu)成的(點(diǎn)連成線),做一些形狀變化只要移動(dòng)坐標(biāo)點(diǎn)就可以了。
簡單的來說,在SVG要實(shí)現(xiàn)Morphing動(dòng)畫,主要是靠移動(dòng)形狀路徑上的坐標(biāo)點(diǎn)從而達(dá)到從一個(gè)形狀變到另一個(gè)形狀的動(dòng)畫效果。并且由于這個(gè)形狀是從一個(gè)形狀變化而來,所以路徑上的坐標(biāo)數(shù)量要完全相同,不同的只是坐標(biāo)的位置不同而已。
如何制作Morphing動(dòng)畫要制作Morphing動(dòng)畫,首先得用矢量編輯軟件比如Adobe Illustrator或者是Inscape來設(shè)計(jì)好相關(guān)的形狀并得到相關(guān)路徑(path)的數(shù)據(jù)信息。
比如,如果你要做如下圖所示的兩個(gè)形狀之間變化的Morphing動(dòng)畫,就需要在設(shè)計(jì)軟件中先設(shè)計(jì)好兩個(gè)形狀。當(dāng)然這里要注意一點(diǎn)的事是,兩個(gè)圖形的坐標(biāo)數(shù)量要一樣,只是位置不同而已。了解
Adobe Illustrator的應(yīng)該會(huì)明白,一般在設(shè)計(jì)好基本的形狀的時(shí)候,使用貝賽爾曲線工具,可以做很多的變化,從而使用一個(gè)基本的形狀可以做出不同形狀的變化。
下面我們來小小的練習(xí)一下,實(shí)現(xiàn)上圖中的效果。
首先在設(shè)計(jì)軟件中,這里使用的是Adobe Illustrator來設(shè)計(jì)一個(gè)基本的形狀,如下圖所示:
然后復(fù)制一份新建一個(gè)文檔,在它基礎(chǔ)上使用貝賽爾曲線工具,稍微對(duì)幾個(gè)坐標(biāo)點(diǎn)做下變化得到下面的圖形:
這就得到了兩個(gè)矢量圖形,然后分別導(dǎo)出SVG格式,得到Path的信息:
path1path2
得到path信息之后,接下來就是來實(shí)現(xiàn)動(dòng)畫效果來。
這里我們需要借助于一個(gè)小小的輕量級(jí)的js動(dòng)畫庫anime,這個(gè)庫非常的小,而且沒有任何的依賴,才幾百行。是一款功能強(qiáng)大的Javascript動(dòng)畫庫插件。anime.js可以和CSS3屬性,SVG,DOM元素和JS對(duì)象一起工作,制作出各種高性能,平滑過渡的動(dòng)畫效果。
具體的使用方法就不詳細(xì)介紹,可以去官網(wǎng)看相關(guān)實(shí)例。
下面就針對(duì)SVG來介紹下使用anime來實(shí)現(xiàn)Morphing動(dòng)畫。根據(jù)Morphing動(dòng)畫原理,我們現(xiàn)在是要實(shí)現(xiàn)從path1形狀平滑的過度到path2的動(dòng)畫效果。
anime api獲取目標(biāo)元素
在anime中要來編寫動(dòng)畫效果,首先是選擇你要運(yùn)動(dòng)的元素,這里使用瀏覽器默認(rèn)的方法來得到目標(biāo)元素:
選擇器 | 示例 |
---|---|
DOM元素 | document.getElementsByTagName("path")[0]] |
參數(shù)
這里簡單介紹下,我們將要使用的一些參數(shù)
名字 | 默認(rèn)值 | 類型 |
---|---|---|
delay(動(dòng)畫延遲) | 0 | 數(shù)字 |
duration(動(dòng)畫運(yùn)行時(shí)間) | 1000 | 數(shù)字 |
autoplay(是否自動(dòng)開始) | ture | 布爾值 |
easing(緩動(dòng)曲線) | easeOutElastic | 使用console log anime.easings可以輸出它支持的一些歡動(dòng)曲線方法 |
loop(是否循環(huán)播放) | false | 布爾值或者是具體的整數(shù) |
具體到我們這個(gè)效果,其實(shí)我們要改變的就是SVG中Path路徑的值,使用anime結(jié)合上面介紹的方法可以很輕松的來實(shí)現(xiàn)這個(gè)效果,如下代碼所示:
anime({ targets: [document.getElementsByTagName("path")[0]], d: "M140,51.75A51.75,51.75,0,0,0,99.2,35.27a83,83,0,1,0,65.13,65.67A51.76,51.76,0,0,0,140,51.75Z", duration: 1000, loop: true, direction: "alternate", easing: "linear" });
上面的代碼中,d就是我們要改變的屬性的值。這里注意下duration這個(gè)參數(shù),它是用來指定動(dòng)畫運(yùn)行的方向的,主要是三個(gè)值normal、reverse和alternate,這里選擇是alternate即動(dòng)畫動(dòng)畫輪流反向播放。
OK,就這么簡單我們就實(shí)現(xiàn)了一個(gè)簡單Morphing動(dòng)畫。充分發(fā)揮你的想象力,我們可以實(shí)現(xiàn)更有趣的Morphing動(dòng)畫。
最近做了一個(gè)關(guān)于SVG的應(yīng)用的技術(shù)分享網(wǎng)站svgtrick.com,會(huì)同步一些文章到這里來,更多的關(guān)于SVG方面的技術(shù)知識(shí)可以去網(wǎng)站看看。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80403.html
摘要:了解的應(yīng)該會(huì)明白,一般在設(shè)計(jì)好基本的形狀的時(shí)候,使用貝賽爾曲線工具,可以做很多的變化,從而使用一個(gè)基本的形狀可以做出不同形狀的變化??梢院蛯傩裕?,元素和對(duì)象一起工作,制作出各種高性能,平滑過渡的動(dòng)畫效果。下面就針對(duì)來介紹下使用來實(shí)現(xiàn)動(dòng)畫。 何為Morphing動(dòng)畫 開始之前,先來了解下什么是Morphing動(dòng)畫。所謂Morphing動(dòng)畫是表示,同一個(gè)模型,從一個(gè)形狀變到另一個(gè)形狀。如下...
摘要:今天這篇文章來講一個(gè)動(dòng)畫在界面上一個(gè)具體的運(yùn)用即具有動(dòng)畫效果的播放按鈕。在后面實(shí)現(xiàn)動(dòng)畫效果的時(shí)候要用到。下面來看下實(shí)現(xiàn)動(dòng)畫效果核心代碼所謂動(dòng)畫效果,就是從一個(gè)形狀變到另一個(gè)形狀。由于使用方法,它們之間的變化會(huì)有一個(gè)動(dòng)畫效果即動(dòng)畫效果。 前面有專門寫過一篇morphing動(dòng)畫基礎(chǔ)知識(shí)的文章,不了解的話可以去這里看看。 今天這篇文章來講一個(gè)morphing動(dòng)畫在UI界面上一個(gè)具體的運(yùn)用即具...
摘要:從形狀到另外一個(gè)形狀的轉(zhuǎn)化就是移動(dòng)坐標(biāo)點(diǎn)而已。今天我們來使用之前多次提到過的這個(gè)庫來實(shí)現(xiàn)動(dòng)畫。在執(zhí)行的時(shí)候,會(huì)自動(dòng)讀取數(shù)組里顏色的值,填充到路徑中去,從而實(shí)現(xiàn)兩個(gè)形狀填充顏色的動(dòng)畫。 這個(gè)實(shí)例來看看如何使用anime.js來實(shí)現(xiàn)一個(gè)形變(morphing)動(dòng)畫。 至于什么是morphing動(dòng)畫,看完下面這個(gè)圖就知道了。 showImg(https://segmentfault.com/...
摘要:在制作動(dòng)畫方面也非常強(qiáng)悍,并且還專門提供了用于加強(qiáng)動(dòng)畫制作的相關(guān)插件,比如。一個(gè)有趣的的動(dòng)畫效果就完成了,代碼地址使用配合來制作動(dòng)畫效果如此簡單。原文地址,根據(jù)自己理解整理了下這個(gè)教程,主要是來學(xué)習(xí)下使用來制作動(dòng)畫效果的思路和方法。 這是我的一個(gè)關(guān)于SVG的應(yīng)用的技術(shù)分享網(wǎng)站svgtrick.com,會(huì)同步一些文章到這里來,更多關(guān)于SVG技術(shù)應(yīng)用可以去網(wǎng)站看看。 最近從Dribbble...
摘要:目前只提供了一些基礎(chǔ)功能。中與的區(qū)別開發(fā)者第一次接觸手寫那種,雖然很多情況都有設(shè)計(jì)師使用來完成這項(xiàng)工作,但還是不排除需要利用到的每個(gè)元素。輕量級(jí),具備靈活的來自團(tuán)隊(duì),全球非常出名的可視化團(tuán)隊(duì)。于是筆者嘗試著把移植到中。 使用SVG + CSS實(shí)現(xiàn)動(dòng)態(tài)霓虹燈文字效果 早上無意間進(jìn)入一個(gè)網(wǎng)站,看到他們的LOGO效果略屌,如圖: 剛開始以為是gif動(dòng)畫之類的,審查元素發(fā)現(xiàn)居然是用SVG + ...
閱讀 3436·2021-11-12 10:36
閱讀 2759·2021-11-11 16:55
閱讀 2982·2021-09-27 13:36
閱讀 1628·2021-08-05 10:01
閱讀 3570·2019-08-30 15:55
閱讀 784·2019-08-30 13:01
閱讀 1920·2019-08-29 17:16
閱讀 2389·2019-08-29 16:40