CSS動(dòng)畫(huà)學(xué)習(xí)06:打鉤動(dòng)畫(huà)
基本上無(wú)害
發(fā)布于 云南 2023-10-30 · 1.8w瀏覽 1贊

效果圖

簡(jiǎn)單且常見(jiàn)的動(dòng)畫(huà)效果。

實(shí)現(xiàn)思路?

使用?svg?繪制圓圈和打鉤圖形,然后使用?stroke-array?和?stroke-offset?完成路徑動(dòng)畫(huà)。

1. svg 繪制圖形

2. 設(shè)定?stroke-array?和?stroke-offset?值

3. 添加路徑動(dòng)畫(huà)

繪制圖形

設(shè)定?stroke?屬性?

通過(guò)?stroke?屬性來(lái)模擬路徑動(dòng)畫(huà)的原理,在?CSS動(dòng)畫(huà)學(xué)習(xí)03:衛(wèi)星環(huán)繞loading?已經(jīng)介紹過(guò)了,此處不再贅述。

我們先為兩個(gè)圖形添加類(lèi)名,然后使用 css 為圓環(huán)添加?stroke-array,值等于圓環(huán)的周長(zhǎng)。

然后我們隨便給它一個(gè)?stroke-offset?屬性觀察一下效果:

可以看到,設(shè)置了?stroke-offset?的圓環(huán)缺口始于它的?三點(diǎn)鐘方向,并沿著?逆時(shí)針?方向擴(kuò)展。

我們想要路徑動(dòng)畫(huà),從圓環(huán)的頂部開(kāi)始。因此我們需要將圓環(huán)逆時(shí)針旋轉(zhuǎn) 90°。

TIPS:?svg 中 transform 的寫(xiě)法與 css 中還是有區(qū)別的,詳見(jiàn)?Rotate。當(dāng)然這里也可以使用 css 的?transform-origin?來(lái)完成。

?

旋轉(zhuǎn)后的效果如下:

類(lèi)似的邏輯,我們?yōu)榇蜚^圖案添加?stroke?屬性,并將它們的?stroke-offset?都設(shè)置為圖案總長(zhǎng)度(即剛好藏起整個(gè)圖形)。

添加路徑動(dòng)畫(huà)?

接下來(lái)分別定義圓環(huán)和打鉤的動(dòng)畫(huà),將?stroke-offset?從總長(zhǎng)度變化到 0。

添加一個(gè) checkbox 用來(lái)觸發(fā)動(dòng)畫(huà):

大功告成。

基本上無(wú)害
火星宛如雪花,從42號(hào)有軌電車(chē)車(chē)頂?shù)墓渭娖魃巷w落而下。
瀏覽 1.8w
1
相關(guān)推薦
最新評(píng)論
贊過(guò)的人 1
評(píng)論加載中...

暫無(wú)評(píng)論,快來(lái)評(píng)論吧!