搜尋
首頁web前端css教學如何使用不規則的SVG筆觸獲得手寫動畫

如何使用不規則的SVG筆觸獲得手寫動畫

我想為書法字體做一個手寫動畫,這種單詞像被看不見的筆一樣動畫。由於書法字體的中風寬度不均勻(實際上它們甚至不是SVG的中風),因此使用典型的路徑動畫技術來做這種事情幾乎是不可能的。但是我發現SVG屏蔽的創新應用可以在幾分鐘內實現這種影響。

在研究如何執行此操作時,我從多個來源收集了信息。我將它們結合在一起,並能夠創建最終效果。

讓我們一起做!

SVG掩蔽

如果一個單詞或句子中所有字母的中風寬度都遍布,那麼Craig Roblewsky可以使用手寫動畫。這是一種巧妙的技術,可以使SVG卒中 - 劃線和中風 - 扣除屬性動畫。

書法字體像我們想在這裡動畫的字體在整個字母中都具有不平衡的中風寬度,因此,它需要是,並以這種方式對其進行動畫操作。訣竅是使用SVG掩碼。

首先,讓我們弄清楚要使用的字體。在本文中我將使用的是Hasheartone,它具有不錯的筆觸,非常適合筆跡。

這個想法是在我們要動畫的同一句子中創建一個,然後將其放在句子的頂部。換句話說,將有兩層相同的句子。由於面具位於頂部,我們將其使其白色,因此它將隱藏在其下方的原始句子。我們將對掩碼進行動畫化,以便在動畫運行時揭示底層。

製作圖層

這個技巧的基礎是,我們實際上要創建兩個單獨的層,一個在另一個層上:

  1. 底層是帶有所需字體的單詞(在我的情況下是hasheartone)。
  2. 頂層是近似單詞的手工製作路徑。

創建手工的路徑並不像您想像的那樣難。我們需要一條連續的途徑來動畫和揭示句子。這意味著對此沒有。但是,許多說明應用程序(包括插圖畫家)可以將字母轉換為路徑:

  1. 選擇單詞。
  2. 打開“屬性”面板,然後單擊“創建大綱”

而且,像魔術一樣,字母變成了沿形狀的矢量點的輪廓。

在這一點上,將有意義的名稱賦予這些路徑非常重要,這些路徑被存儲為層。當我們期望SVG時,該應用將生成代碼,並將這些圖層名稱用作ID和類。

注意單個字母如何有填充,但沒有中風:

在SVG中,我們可以按照自己想要的方式對中風進行動畫動畫,因此我們需要將其作為第二個主層,即蒙版。我們可以使用筆工具跟踪字母。

  1. 選擇筆工具。
  2. 將填充選項設置為“無”。
  3. 中風寬度將取決於您使用的字體。我將衝程寬度選項設置為5px,並將其顏色設置為黑色。
  4. 開始繪畫!

我的筆工具技能不佳,但這沒關係。重要的不是完美,而是掩蓋了下面的層。

為每個字母創建一個掩碼,並記住對這些層使用好名字。絕對可以重複使用面具,那裡有一個以上的字母之一 - 無需一遍又一遍地重新繪製相同的“ A”角色。

出口

接下來,我們需要導出SVG文件。這可能取決於您使用的應用程序。在Illustrator中,您可以使用文件→導出→導出為→SVG

SVG選項彈出窗口將打開,下面是此示例導出的首選設置。

現在,並非所有應用程序都以相同的方式導出SVG。有些在生成纖細,高效的代碼方面做得非常出色。其他人,不是很多。無論哪種方式,最好在代碼編輯器中打開文件

當我們與SVG合作時,有一些技巧需要考慮,以使其盡可能輕便,以表現出色:

  1. 點越少,文件越輕。
  2. 使用較小的查看框可以有所幫助。
  3. 有很多工具可以進一步優化SVG。

手動編輯SVG代碼

現在,並非所有應用程序都以相同的方式導出SVG。有些在生成纖細,高效的代碼方面做得非常出色。其他人,不是很多。無論哪種方式,最好在代碼編輯器中打開文件並進行一些更改。

有些事情值得做:

  1. 給出設置為最終設計大小的元素寬度和高度屬性。
  2. 使用元素。由於我們正在使用路徑,因此屏幕讀取器實際上並沒有識別這些單詞。如果您需要在焦點時閱讀它們,那麼這將解決問題。
  3. 可能會有基於Illustration App中命名的層的ID的組元素()。在這個特定的演示中,我有兩個小組元素:#營銷利潤(大綱)和#營銷口罩(蒙版)。將蒙版移動到元素中。這將在視覺上隱藏它,這就是我們想要的。
  4. 口罩組內部可能會有路徑。如果是這樣,請繼續並從中刪除轉換屬性。
  5. 將每個路徑元素包裹在中,並給它們一個.mask類和一個ID,以指示哪個字母掩蓋。

例如:

 <mask>
 
</mask>

在輪廓組(我給出了#Marketing-LAB的ID)內部,將掩碼應用於相應的字符路徑元素,並使用Mask =“ url(#bask-marketing-m)”。

 <g>
 <path mask="“" url d="“" m427></path>
</g>

這是使用上述所有修改的一個字符的代碼:

 <svg xmlns="“" http: viewbox="“">
 <title>營銷實驗室</title>
 <defs>
  <g>
   <mask>
    
   </mask>
  </g>
 </defs>
 <g>
  
 </g>
</svg>

最後,我們將為.mask元素添加CSS,該元素覆蓋了用白色覆蓋筆劃的顏色,因此它與文檔的背景顏色相對於文檔的背景顏色隱藏。

 。面具 {
 填充:無;
 中風:#fff;
}

動畫片

我們將對CSS衝程 - 戴式屬性屬性進行動畫動畫,以獲取連續的線揭示效果。我們可以使用CSS和Javasscript或Greensock(GSAP)進行動畫。我們將研究兩種方法。

CSS和JavaScript

僅在CSS中執行此操作是非常簡單的。您可以使用JavaScript來計算路徑長度,然後使用返回的值對其進行動畫化。如果您根本不想使用JavaScript,則可以計算一次路徑長度,然後將該值進行硬編碼到CSS中。

 / *設置“中風”和“劃線” dashoffset */
。面具 {
 中風 -  dasharray:1000;
 中風劃線:1000;
}


/ *動畫將衝程 - 劃線為零長度 */
@KeyFrames streoffset {
 到 {
  中風劃線:0;
 }
}


/ *將動畫應用於每個掩碼 */
#mask-m {
 動畫:StrokeOffset 1S線性前進;
}

JavaScript如果您希望使用該路線,可以幫助進行計數:

 //將口罩放在數組中
const masks = ['m','a','r','k-1','k-2','e','t line-v','t-line-h','i-dot',i-dot',i-dot',n','n','g','lab-l','lab-l','lab-a','lab-a','lab b','lab-b'],'lab b']


masks.foreach((蒙版,索引,el)=> {
 const ID =`#mask- $ {蒙版}`//預先#bask-到每個掩碼元素名稱
 讓路徑= document.queryselector(id)
 const長度= path.getTotallength()//計算路徑的長度
 PATH.STYLE.STROKEDASHARRAY =長度; //將長度設置為“樣式”
 PATH.STYLE.STROKEDASHOFFSET =長度; //將長度設置為在樣式中的中風式dashoffset
}))

GSAP

GSAP具有一個drawsvg插件,可讓您逐步揭示(或隱藏)SVG 。在引擎蓋下,它使用了CSS衝程儀表式和中風劃線屬性。

這是其工作原理:

  1. 在代碼中包括GSAP和DrawsVG腳本。
  2. 最初使用自動藻類隱藏圖形。
  3. 創建一個時間表。
  4. 將自動α設置為圖形。
  5. 以適當的順序將所有字符路徑蒙版ID添加到時間表中。
  6. 使用drawsvg來動畫所有字符。

參考

  1. 傑克·阿奇博爾德(Jake Archibald)在SVG中的動畫繪圖線
  2. 創建Cassie Evans的徽標動畫

以上是如何使用不規則的SVG筆觸獲得手寫動畫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

CSS計數器:自動編號的綜合指南CSS計數器:自動編號的綜合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

使用捲軸驅動動畫的現代滾動陰影使用捲軸驅動動畫的現代滾動陰影May 07, 2025 am 10:34 AM

使用滾動陰影,尤其是對於移動設備,是克里斯以前涵蓋的一個微妙的UX。傑夫(Geoff)涵蓋了一種使用動畫限制屬性的新方法。這是另一種方式。

重新訪問圖像圖重新訪問圖像圖May 07, 2025 am 09:40 AM

讓我們快速進修。圖像地圖一直返回到HTML 3.2,首先是服務器端地圖,然後使用映射和區域元素通過圖像上的單擊區域定義了可單擊區域。

DEV狀態:每個開發人員的調查DEV狀態:每個開發人員的調查May 07, 2025 am 09:30 AM

開發委員會調查現已開始參與,並且與以前的調查不同,它涵蓋了除法:職業,工作場所,以及健康,愛好等。 

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。