[整理]SVG Path Animations

SVG描邊動畫,使用了SVG圖形中PATH標簽的stroke特性制作的動畫。

為什么使用SVG?

相對于其他的圖片格式,SVG具有更好的交互性,可操作性強,并且是矢量圖<-大家都懂的

如何獲得SVG圖形?

如果你想手寫出精美復雜的SVG圖形,我只能說:“大神求帶”。

生成SVG的工具有很多,請大家自行百度/谷歌。我所看到的文章中具體介紹了如何使用Ai導出干凈,具有標簽的,可操作性強的SVG文件,但是該文章中關鍵的引用連接失效了,無法看到具體是怎么把SVG變得干凈和可操作的,有興趣的同學請自行谷歌。

SVG描邊動畫實現的原理?

利用SVG圖形Path元素的Stroke的stroke-dasharray和stroke-dashoffset屬性。設定合適的stroke-dasharray,改變stroke-dashoffset來形成動畫,看不懂的請查找相關資料。

/*css example*/

stroke-dasharray: "100 100";

stroke-dashoffset: 100;

“動畫”實現方式選擇

做SVG有關的網頁動畫,目前了解到有兩條大路子:

1. CSS3 transitions

2. js

CSS3的動畫的明顯缺點是無法控制它的繪制時間(筆者表示css的每次transition動畫結束都會觸發一個transitionend的時間并且有個回調函數,有興趣的同學求帶)。如果使用Js繪制,Js需要計算出初始狀態和終止狀態之間的每一幀的參數。

Js的動畫有兩種控制方式:

1. 控制動畫總時長

2. 控制幀率

第一種的缺點是,在性能較弱的設備上得到的動畫效果十分不理想。

Js的動畫有兩種實現方式:

1. 使用setInterval和setTimeOut計時器來對每一幀

2. requestAnimationFrame(有個Js庫,叫Metronome,可以研究)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,288評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,241評論 4 61
  • 隨著圣誕節的臨近,這圣誕老人可是著實的火了一把,隨處可見的圣誕樹、圣誕帽,這些圣誕單品也是銷售火爆。可是這圣誕老人...
    北方銀閱讀 419評論 3 1