国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
SVG掩蔽
制作圖層
出口
手動(dòng)編輯SVG代碼
動(dòng)畫片
CSS和JavaScript
GSAP
參考
首頁(yè) web前端 css教程 如何使用不規(guī)則的SVG筆觸獲得手寫動(dòng)畫

如何使用不規(guī)則的SVG筆觸獲得手寫動(dòng)畫

Apr 02, 2025 pm 06:22 PM

如何使用不規(guī)則的SVG筆觸獲得手寫動(dòng)畫

我想為書法字體做一個(gè)手寫動(dòng)畫,這種單詞像被看不見的筆一樣動(dòng)畫。由于書法字體的中風(fēng)寬度不均勻(實(shí)際上它們甚至不是SVG的中風(fēng)),因此使用典型的路徑動(dòng)畫技術(shù)來(lái)做這種事情幾乎是不可能的。但是我發(fā)現(xiàn)SVG屏蔽的創(chuàng)新應(yīng)用可以在幾分鐘內(nèi)實(shí)現(xiàn)這種影響。

在研究如何執(zhí)行此操作時(shí),我從多個(gè)來(lái)源收集了信息。我將它們結(jié)合在一起,并能夠創(chuàng)建最終效果。

讓我們一起做!

SVG掩蔽

如果一個(gè)單詞或句子中所有字母的中風(fēng)寬度都遍布,那么Craig Roblewsky可以使用手寫動(dòng)畫。這是一種巧妙的技術(shù),可以使SVG卒中 - 劃線和中風(fēng) - 扣除屬性動(dòng)畫。

書法字體像我們想在這里動(dòng)畫的字體在整個(gè)字母中都具有不平衡的中風(fēng)寬度,因此,它需要是,并以這種方式對(duì)其進(jìn)行動(dòng)畫操作。訣竅是使用SVG掩碼。

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

這個(gè)想法是在我們要?jiǎng)赢嫷耐痪渥又袆?chuàng)建一個(gè),然后將其放在句子的頂部。換句話說(shuō),將有兩層相同的句子。由于面具位于頂部,我們將其使其白色,因此它將隱藏在其下方的原始句子。我們將對(duì)掩碼進(jìn)行動(dòng)畫化,以便在動(dòng)畫運(yùn)行時(shí)揭示底層。

制作圖層

這個(gè)技巧的基礎(chǔ)是,我們實(shí)際上要?jiǎng)?chuàng)建兩個(gè)單獨(dú)的層,一個(gè)在另一個(gè)層上:

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

創(chuàng)建手工的路徑并不像您想象的那樣難。我們需要一條連續(xù)的途徑來(lái)動(dòng)畫和揭示句子。這意味著對(duì)此沒有。但是,許多說(shuō)明應(yīng)用程序(包括插圖畫家)可以將字母轉(zhuǎn)換為路徑:

  1. 選擇單詞。
  2. 打開“屬性”面板,然后單擊“創(chuàng)建大綱”

而且,像魔術(shù)一樣,字母變成了沿形狀的矢量點(diǎn)的輪廓。

在這一點(diǎn)上,將有意義的名稱賦予這些路徑非常重要,這些路徑被存儲(chǔ)為層。當(dāng)我們期望SVG時(shí),該應(yīng)用將生成代碼,并將這些圖層名稱用作ID和類。

注意單個(gè)字母如何有填充,但沒有中風(fēng):

在SVG中,我們可以按照自己想要的方式對(duì)中風(fēng)進(jìn)行動(dòng)畫動(dòng)畫,因此我們需要將其作為第二個(gè)主層,即蒙版。我們可以使用筆工具跟蹤字母。

  1. 選擇筆工具。
  2. 將填充選項(xiàng)設(shè)置為“無(wú)”。
  3. 中風(fēng)寬度將取決于您使用的字體。我將沖程寬度選項(xiàng)設(shè)置為5px,并將其顏色設(shè)置為黑色。
  4. 開始繪畫!

我的筆工具技能不佳,但這沒關(guān)系。重要的不是完美,而是掩蓋了下面的層。

為每個(gè)字母創(chuàng)建一個(gè)掩碼,并記住對(duì)這些層使用好名字。絕對(duì)可以重復(fù)使用面具,那里有一個(gè)以上的字母之一 - 無(wú)需一遍又一遍地重新繪制相同的“ A”角色。

出口

接下來(lái),我們需要導(dǎo)出SVG文件。這可能取決于您使用的應(yīng)用程序。在Illustrator中,您可以使用文件→導(dǎo)出→導(dǎo)出為→SVG

SVG選項(xiàng)彈出窗口將打開,下面是此示例導(dǎo)出的首選設(shè)置。

現(xiàn)在,并非所有應(yīng)用程序都以相同的方式導(dǎo)出SVG。有些在生成纖細(xì),高效的代碼方面做得非常出色。其他人,不是很多。無(wú)論哪種方式,最好在代碼編輯器中打開文件

當(dāng)我們與SVG合作時(shí),有一些技巧需要考慮,以使其盡可能輕便,以表現(xiàn)出色:

  1. 點(diǎn)越少,文件越輕。
  2. 使用較小的查看框可以有所幫助。
  3. 有很多工具可以進(jìn)一步優(yōu)化SVG。

手動(dòng)編輯SVG代碼

現(xiàn)在,并非所有應(yīng)用程序都以相同的方式導(dǎo)出SVG。有些在生成纖細(xì),高效的代碼方面做得非常出色。其他人,不是很多。無(wú)論哪種方式,最好在代碼編輯器中打開文件并進(jìn)行一些更改。

有些事情值得做:

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

例如:

 <mask>
 
</mask>

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

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

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

 <svg xmlns="“" http: viewbox="“">
 <title>營(yíng)銷實(shí)驗(yàn)室</title>
 <defs>
  <g>
   <mask>
    
   </mask>
  </g>
 </defs>
 <g>
  
 </g>
</svg>

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

 。面具 {
 填充:無(wú);
 中風(fēng):#fff;
}

動(dòng)畫片

我們將對(duì)CSS沖程 - 戴式屬性屬性進(jìn)行動(dòng)畫動(dòng)畫,以獲取連續(xù)的線揭示效果。我們可以使用CSS和Javasscript或Greensock(GSAP)進(jìn)行動(dòng)畫。我們將研究?jī)煞N方法。

CSS和JavaScript

僅在CSS中執(zhí)行此操作是非常簡(jiǎn)單的。您可以使用JavaScript來(lái)計(jì)算路徑長(zhǎng)度,然后使用返回的值對(duì)其進(jìn)行動(dòng)畫化。如果您根本不想使用JavaScript,則可以計(jì)算一次路徑長(zhǎng)度,然后將該值進(jìn)行硬編碼到CSS中。

 / *設(shè)置“中風(fēng)”和“劃線” dashoffset */
。面具 {
 中風(fēng) -  dasharray:1000;
 中風(fēng)劃線:1000;
}
?
/ *動(dòng)畫將沖程 - 劃線為零長(zhǎng)度 */
@KeyFrames streoffset {
 到 {
  中風(fēng)劃線:0;
 }
}
?
/ *將動(dòng)畫應(yīng)用于每個(gè)掩碼 */
#mask-m {
 動(dòng)畫:StrokeOffset 1S線性前進(jìn);
}

JavaScript如果您希望使用該路線,可以幫助進(jìn)行計(jì)數(shù):

 //將口罩放在數(shù)組中
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- $ {蒙版}`//預(yù)先#bask-到每個(gè)掩碼元素名稱
 讓路徑= document.queryselector(id)
 const長(zhǎng)度= path.getTotallength()//計(jì)算路徑的長(zhǎng)度
 PATH.STYLE.STROKEDASHARRAY =長(zhǎng)度; //將長(zhǎng)度設(shè)置為“樣式”
 PATH.STYLE.STROKEDASHOFFSET =長(zhǎng)度; //將長(zhǎng)度設(shè)置為在樣式中的中風(fēng)式dashoffset
}))

GSAP

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

這是其工作原理:

  1. 在代碼中包括GSAP和DrawsVG腳本。
  2. 最初使用自動(dòng)藻類隱藏圖形。
  3. 創(chuàng)建一個(gè)時(shí)間表。
  4. 將自動(dòng)α設(shè)置為圖形。
  5. 以適當(dāng)?shù)捻樞驅(qū)⑺凶址窂矫砂鍵D添加到時(shí)間表中。
  6. 使用drawsvg來(lái)動(dòng)畫所有字符。

參考

  1. 杰克·阿奇博爾德(Jake Archibald)在SVG中的動(dòng)畫繪圖線
  2. 創(chuàng)建Cassie Evans的徽標(biāo)動(dòng)畫

以上是如何使用不規(guī)則的SVG筆觸獲得手寫動(dòng)畫的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何僅在某些頁(yè)面上包括CSS? 如何僅在某些頁(yè)面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁(yè)面上的方法有三種:1.內(nèi)聯(lián)CSS,適用于不常訪問(wèn)或需要獨(dú)特樣式的頁(yè)面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用于使用服務(wù)器端語(yǔ)言的場(chǎng)景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Jun 10, 2025 am 12:03 AM

flexboxisidealforone-dimensionAllayouts,while gridsuitStwo,complex layouts.useflexboxforaligningItemsinasingLeaxisAndGridForRidForPreciseconcontroloverroverroverroverroverroverroverrowsandsininintricatientricatedesigns。

使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 Jun 10, 2025 am 09:45 AM

HTML彈出屬性將元素轉(zhuǎn)換為頂層元素,可以使用按鈕或JavaScript打開和關(guān)閉。可以將彈出案駁回多種方式,但是沒有選擇自動(dòng)關(guān)閉它們。 preethi有一種技術(shù),你可以

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過(guò)JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過(guò)度拆分與復(fù)雜腳本控制。

如何在無(wú)花果中使用Lotties 如何在無(wú)花果中使用Lotties Jun 14, 2025 am 10:17 AM

在接下來(lái)的教程中,我將向您展示如何在無(wú)花果中創(chuàng)建Lottie動(dòng)畫。我們將使用兩種彩色設(shè)計(jì)來(lái)超越如何在無(wú)花果上進(jìn)行動(dòng)畫,然后向您展示如何從Figma到Lottie動(dòng)畫。您只需要免費(fèi)無(wú)花果

打破邊界:用(s)CSS構(gòu)建湯姆拼圖 打破邊界:用(s)CSS構(gòu)建湯姆拼圖 Jun 13, 2025 am 11:33 AM

我們對(duì)其進(jìn)行了測(cè)試,事實(shí)證明,至少在低級(jí)邏輯和拼圖行為時(shí),Sass可以替換JavaScript。除了地圖,混音,功能和大量數(shù)學(xué)外,我們都設(shè)法使我們的Tangram難題栩栩如生,沒有J

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

See all articles