svg 動畫_根據AI導出的SVG path制作SVG線條動畫

點擊右上方紅色按鈕關注“web秀”,讓你真正秀起來

前言

首先祝大家2019新年快樂,萬事大吉,豬事順利,闔家歡樂。

前面文章SVG 線條動畫基礎入門知識學習到了基礎知識,現在來給大家講講如何制作SVG 制作復雜圖形線條動畫。

假如你有這樣的一個gif,要用svg畫出來,你能想到什么辦法了?

303b8ee41010f9dcc21d389212779c1c.gif

上面這個 SVG 線條動畫的路徑 path ,如果自己手工一個點一個點定位調試畫出來的話,估計你的累趴下(也不一定能搞定)。

下面我來告訴大家一個簡單的方法,準備好工具。

1c457a41bea801fd6daeeb8c069b72ce.png

使用 PS 導出路徑

導入圖片

ab28413dde235e814d36280ac36ae1e8.png

用魔術棒or套索工具,選擇區域

b4cfef4b7c0a0a73e7c46e2b1b64880a.png

右擊-->建立工作路徑-->容差2個像素吧(可以用不同大小的容差多試幾次,直到得到一個自己滿意的路徑。)。

ca228a23b14098072d3ce1c169b34153.png

好,這個時候,路徑算是建立完成了,可以把圖層的透明度設置為 0 ,就能清晰的看到路徑長啥樣:

106f794eb2aa0022cb9b26a4566122ff.png

好,到了 PS 中的最后一步,點擊 文件-->導出-->路徑到 illustrator ,看圖,照著操作就好:

252580db71976e09399ebb120be32b96.png

在 illustrator 中生成 SVG 文件

打開 AI ,打開剛剛用 PS 導出的 *.ai 文件。

可能你看到的是一片空白,別慌,使用ctrl+a全選,就能選中路徑啦。

a967cea7990b3d15ee215d5da209c4cd.png

看到了吧,這上面有多少個點,太多,都不想數,所以手工畫是不可能的啦。

OK,接下來就是調整畫布大小,最好是路徑左上角和畫布左上角對齊,然后選中存儲為 SVG 文件。

d189ee1d5161c609e91ded3488e220e6.png

好,其實吧 AI 也沒做什么,路徑是使用 PS 生成的,為什么不直接用 PS 生成 *.svg 文件呢?因為我用的版本 PS 還沒支持直接存儲為 SVG 格式。然后其實也可以直接在 AI 上繪制路徑,這個就看設計師或者你對哪個工具更熟悉了。

獲取 SVG 的 path 路徑

把剛剛保存的 *.svg 路徑的文件用瀏覽器打開,右鍵查看網頁源代碼:

ffe86664dff974976f5f4ee61f8de6ec.png

這里的path就是我們要的路徑了

運用動畫

.container {  width: 400px;  margin: 20px auto; }  .yy {  stroke-width: 5;  stroke: #f987ae;  animation: lineMove 13s ease-out infinite; }  @keyframes lineMove {  0% {  stroke-dasharray: 0, 4891;  }  50% {  stroke-dasharray: 4891, 4891;  fill: rgba(0, 0, 0, 0);  opacity: 1;  }  100% {  stroke-dasharray: 4891, 4891;  fill: rgba(249, 135, 174, 1);  opacity: 0;  } }

這里的stroke-dasharray長度,可以通過js來獲取

var obj = document.querySelector("path"); var length = obj.getTotalLength();  console.log(length); // 4890.61669921875

是不是很簡單了?趕緊自己試試吧。

公告

喜歡小編的點擊關注,了解更多知識!

源碼地址和源文件下載請點擊下方“了解更多”

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454037.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454037.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454037.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL提示Truncated incorrect DOUBLE value解決方法

“Truncated incorrect DOUBLE value”的解決方法主要是這兩種: 1、修改了多個列的值而各列之間用逗號連接而不要用and 錯誤寫法示例:update tablename set col1value1 and col2value2 where col3value3;正確寫法示例:update ta…

一個完美的導航樹

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml" ><head><title>無標題頁</title><…

自定義python框架_Python web 框架Sanic 學習: 自定義 Exception

Sanic 是一個和類Flask 的基于Python3.5的web框架&#xff0c;它使用了 Python3 異步特性&#xff0c;有遠超 flask 的性能。編寫 RESTful API 的時候&#xff0c;我們會定義特定的異常錯誤類型&#xff0c;比如我定義的錯誤返回值格式為&#xff1a;{"error_code": …

文字水印

using System.Threading.Tasks;using System.IO;using System.Drawing; public static int Shuy(string Sname,string fname) { try { Image image Image.FromFile(fname); Graphics gra Graphics.FromImage(image); String text Sname; Font font new Font("宋體&quo…

讀書筆記2013第3本:《無價》

《無價》這本書是過年前買的&#xff0c;網絡書店上寫著“老羅推薦”&#xff0c;想著好像是在老羅哪一年的演講里聽過這本書&#xff0c;在豆瓣上評分7.9。讀書是為了產生行動&#xff0c;讀書時要提的4個問題&#xff0c;1&#xff09;這本書主要在談些什么&#xff1f;2&…

Linux下的程序調試——GDB

無論是多么優秀的程序員&#xff0c;都難以保證自己在編寫代碼時不會出現任何錯誤&#xff0c;因此調試是軟件開發過程中的一個必不可少的 組成部分。當程序完成編譯之后&#xff0c;它很可能無法正常運行&#xff0c;或者會徹底崩潰&#xff0c;或者不能實現預期的功能。此時如…

圓錐曲線萬能弦長公式_2020高考數學50條秒殺型公式與方法

考試馬上就要到了&#xff0c;學姐整理了高考數學50條秒殺型公式和方法&#xff0c;希望能幫助考生們更好地攻克數學難關&#xff01;高考數學秒殺公式與方法一1&#xff0c;適用條件&#xff1a;[直線過焦點]&#xff0c;必有ecosA(x-1)/(x1)&#xff0c;其中A為直線與焦點所在…

Python 內置模塊之 logging

日志的級別和適用情況 級別適用情況DEBUG詳細信息&#xff0c;通常只在診斷問題時對其感興趣INFO確認工作正常WARNING表示發生了意料之外的事或者在不遠的將來會有問題&#xff08;比如磁盤空間低&#xff09;。軟件依然正常工作ERROR由于一個更加嚴重的問題&#xff0c;軟件不…

Memory barrier

待續 Memory barrier,是一種屏障和一類指令&#xff0c;在執行這個屏障指令前后&#xff0c;CPU或者編譯器在內存操作上強制一個約束序列。CPU使用性能優化器可以導致執行代碼的無序。在單一線程執行中&#xff0c;重排序內存操作通常不會被注意。但是在并行編程或者設備驅動中…

數據結構與算法 Python語言描述 筆記

數據結構 線性表包括順序表和鏈表&#xff0c;python的list是順序表&#xff0c;鏈表一般在動態語言中不會使用。不過鏈表還是會出現在各種算法題中。 鏈表 link list 單鏈表 逆轉鏈表&#xff1a; leetcode 206雙鏈表循環單鏈表字符串 string 有一個重要的點就是字符串的匹配問…

Flask 跨域問題

一、什么是跨域 跨域是指&#xff1a;瀏覽器A從服務器B獲取的靜態資源&#xff0c;包括Html、Css、Js&#xff0c;然后在Js中通過Ajax訪問C服務器的靜態資源或請求。即&#xff1a;瀏覽器A從B服務器拿的資源&#xff0c;資源中想訪問服務器C的資源。 同源策略是指&#xff1a;…

Hibernate 中配置屬性詳解(hibernate.properties)

轉自&#xff1a;https://blog.csdn.net/shudaqi2010/article/details/70324843 Hibernate能在各種不同環境下工作而設計的, 因此存在著大量的配置參數。多數配置參數都 有比較直觀的默認值, 并有隨 Hibernate一同分發的配置樣例hibernate.properties 來展示各種配置選項。 所需…

1.3 使用電腦測試MC20的電話語音功能

需要準備的硬件 MC20開發板 1個https://item.taobao.com/item.htm?id562661881042GSM/GPRS天線 1根https://item.taobao.com/item.htm?id531979567261IPEX接口轉SMA接口轉接線 1根https://item.taobao.com/item.htm?id531979903836GPS有源天線 1根https://item.taobao.com/i…

前端之 AJAX

AJAX參數詳細列表 參數名類型描述urlString(默認: 當前頁地址) 發送請求的地址。typeString(默認: "GET") 請求方式 ("POST" 、 "GET")。注意&#xff1a;其它 HTTP 請求方法&#xff0c;如 PUT 和 DELETE &#xff0c;但僅部分瀏覽器支持。tim…

buffer 和cache的區別

Cache&#xff1a;高速緩存&#xff0c;是位于CPU與主內存間的一種容量較小但速度很高的存儲器。 由于CPU的速度遠高于主內存&#xff0c;CPU直接從內存中存取數據要等待一定時間周期&#xff0c;Cache中保存著CPU剛用過或循環使用的一部分數據&#xff0c;當CPU再次使用該部分…

html5--1.18 div元素與布局

1.18 div元素與布局 1.元素的分類2.div元素與布局 1、元素的分類 塊元素:主要特征是會產生換行效果&#xff0c;自動與其他元素分離成兩行&#xff1b;通常可以作為容器在內部添加其他元素。已經學過的塊元素有&#xff1a; h1~h6;hr;ul;ol;p;table......... 內聯元素:不會產生…

python讀取excel表格太大怎么辦_Python:使用Openpyxl讀取大型Excel工作表

嘗試對load_workbook()類使用read_only True屬性,這會導致您獲得的工作表為IterableWroksheet,這意味著您只能迭代它們,您不能直接使用列/行號來訪問其中的單元格值.根據documentation,這將提供接近恒定的存儲器消耗.此外,您不需要關閉文件,語句將為您處理.示例 –import open…

五個優秀的視頻格式轉換工具

電腦、手機、DVD播放機、PSP……這么多的東西都可以播放視頻&#xff0c;但是視頻格式又千差萬別的&#xff0c;我們該怎么辦&#xff1f;這里&#xff0c;我們介紹五個功能強大且易于使用的媒體轉換器&#xff0c;用于轉換不同類型的視頻文件。 一、Super (Windows) Super是一…

前端之 HTML

HTML Web服務本質 import socketsk socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5)while True:conn, addr sk.accept()data conn.recv(8096)conn.send(b"HTTP/1.1 200 OK\r\n\r\n")conn.send(b"<h1>Hello world!</h1>&…

接入指南

接入概述 接入微信公眾平臺開發&#xff0c;開發者需要按照如下步驟完成&#xff1a; 1、填寫服務器配置 2、驗證服務器地址的有效性 3、依據接口文檔實現業務邏輯 下面詳細介紹這3個步驟。 第一步&#xff1a;填寫服務器配置 登錄微信公眾平臺官網后&#xff0c;在公眾平臺官網…