黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

SVG技術入門:線條動畫實現原理

系統 2359 0

相信大家都見到過這樣神奇的技術:一副線條構成的畫能自動畫出自己。非常的酷。Jake Archibald是這種SVG技術的首創者,并且寫了一篇非常好的文章來 描述它是如何實現的 。Brian Suda也在24 Ways網站上 討論過它 。 Polygon使用它在一篇設計方面的文章里創造出了 非常神奇的效果 。Codrops也做出了一些 非常漂亮的例子

?

其實我沒有什么好增補的,只是想把這種技術說的更明白些,所以,在這里我要用我的方式把這種技術再講解一遍。

?

1. 你有一個SVG圖形

SVG技術入門:線條動畫實現原理

?

2. 這個圖形必須要有一個線條(stroke)屬性

SVG技術入門:線條動畫實現原理

?

3. 線條可以是虛線

我們可以用Illustrator制作,也可以用編程實現。我們用CSS來設置這些路徑的樣式(假定我們這里是inline SVG,或通過一個 <object> ),把它們變成虛線形式。

      <svg ...>    <path class="path" stroke="#000000" ... >  </svg>

.path {
  stroke-dasharray: 20;
}
    

?

這是讓虛線里的每個小線段長度為20px。

SVG技術入門:線條動畫實現原理

4. 可以讓虛線小段的長度變得更長….

      .path {
  stroke-dasharray: 100;
}
    
SVG技術入門:線條動畫實現原理

?

5. 我們還可以給我們的線條設置”offset”偏移量,這樣會導致虛線里的小線段的位置發生移動。

當我們動態設置圖形中線條的“offset”值時,可以看到這個效果:

SVG技術入門:線條動畫實現原理
SVG技術入門:線條動畫實現原理

可以這樣簡單的實現:

      .path {
  stroke-dasharray: 100;
  animation: dash 5s linear;
}

@keyframes dash {
  to {
    stroke-dashoffset: 1000;
  }
}
    

?

?

6. 想象,當虛線的小線條足夠長,超過圖形的整個線條長度時

沒有什么變化,整個圖像看起來完全不是虛線。你只需要將 stroke-dasharray 屬性設置的足夠長,超過整個線條的長度。

?

7. 現在給線條設置偏移量,讓它不再覆蓋整個圖形。

這樣你就看不見圖形了。

?

8. 現在動態的慢慢將線條的偏移量設置回歸到0

SVG技術入門:線條動畫實現原理
SVG技術入門:線條動畫實現原理

如果通過CSS,你需要將 animation 屬性設置成 forwards ,這樣整個動畫就會停止在它的最終狀態。

      .path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: dash 5s linear forwards;
}

@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}
    

?

?

Tada!

?

為什么要用JavaScript?

大部分你看到的SVG線條動畫都使用了JavaScript。這是因為在現實情況中你很難知道線條有多長。我們這里設置的是 1000 ,是因為它碰巧是1000。

用JavaScript獲取長度值的寫法是這樣的:

      var path = document.querySelector('.path');
var length = path.getTotalLength();
    

?

?

然后你就可以隨便使用這個值了。文本頂部鏈接的那些文章講的都比本文透徹,你最好還是參考一下那些文章。我只想簡單的講一下這種技術方法,希望它能給你一些啟示。

(英文: How SVG Line Animation Works .)

?

原文: http://www.webhek.com/how-svg-line-animation-works

本文: SVG技術入門:線條動畫實現原理

SVG技術入門:線條動畫實現原理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論