国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

svg動畫的幾種方式

這篇具有很好參考價值的文章主要介紹了svg動畫的幾種方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近在做的項目中有部分的svg需要做成動畫,最開始的想法是轉(zhuǎn)成gif,然后一看,啊,90M!??!實在不能忍,于是和設計妹紙一起研究起了svg動畫,發(fā)現(xiàn)這玩意兒還是很好玩的,怎么讓svg動起來,這是一個很有趣的話題。在目前的開發(fā)過程中,一共使用了三種方式,接下來就一一列舉一下吧。如果有更好的方式,歡迎補充一起討論

svg動畫(animate)

svg有相關(guān)的動畫SIML,可以直接使用,本來說已經(jīng)被棄用了,后面又被開發(fā)者們撿了起來(相關(guān)歷史也沒來得及去深入了解,在這里就先留個口子吧)
常用的元素包括<animate>, <animateMotion>, <animateTransform>

  • <animate> 放置在形狀元素的內(nèi)部,用來定義元素某個屬性什么時候怎么改變,跟css中的animate功能十分相似,可以簡單理解為它的SIML形式
    這是一個svg的柱狀圖動畫,這個動畫的問題在于translateY的值需要手動去調(diào)整(原理是啥還沒研究明白,有知道的朋友可以相互討論一下)
    svg動畫,生活實用小妙招,css3,動畫,前端
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg" >
<rect width="300" height="300" fill="#000"/>
<g filter="url(#filter0_i_242_64122)" transform="scale(1,-1) translate(0,-515)">
<rect x="206" y="237" width="20" height="45" fill="green">
    <animate attributeName="height" from="0" to="45" dur="2s" repeatCount="indefinite" fill="freeze" />
    </rect>
</g>
<g filter="url(#filter1_i_242_64122)" transform="scale(1,-1) translate(0,-460)">
<rect x="86" y="182" width="20" height="100" fill="green">
    <animate attributeName="height" from="0" to="100" dur="2s" repeatCount="indefinite" fill="freeze" />
    </rect>
</g>
<g filter="url(#filter2_i_242_64122)" transform="scale(1,-1) translate(0,-485)">
<rect x="146" y="207" width="20" height="75" fill="green">
    <animate attributeName="height" from="0" to="75" dur="2s" repeatCount="indefinite" fill="freeze" />
    </rect>
</g>
  • <animateMotion>定義了一個元素如何沿著運動路徑移動。svg有個很靈活的元素:<path>,在此就不繼續(xù)展開,我的理解是,只要參數(shù)設置的好,<path>就能生成任何你想要的圖形。如此靈活的元素在進行動畫操作時,需要進行一些特殊的操作
  • <animateTransform>·變動了元素上的一個變形屬性,使動畫可以轉(zhuǎn)換,縮放,旋轉(zhuǎn)或斜切??梢院唵卫斫鉃閏ss中transform,transition的SIML形式
    在使用這個屬性的時候需要注意,跟css的transform一樣,變形的順序不同可能會出現(xiàn)不一樣的結(jié)果,所以需要提前計算好變換的距離
    個人覺得這種形式比使用CSS動畫更加靈活,特別是用于<path>的動態(tài)處理,這是CSS動畫較難做到的,缺點是屬性比較多,會有一丟丟的學習成本(只有一丟丟)

CSS動畫

svg本身也是XML的形式,所以可以非常絲滑的使用CSS動畫,同樣的,在元素里加上class或者style就可以直接使用了,這里就不過多闡述

Lottie

設計師經(jīng)常使用AE進行動畫創(chuàng)作,然后輸出json格式的數(shù)據(jù),使用Lottie可以十分順滑的將json數(shù)據(jù)轉(zhuǎn)化為動畫(web端配合lottie-web使用)。Lottie使用起來十分的絲滑,完全無懼,但缺點是lottie包有一定的體積,如果使用的是小動畫,如此大的體積有些劃不來,動畫多,或者有些動畫使用css難以達到類似效果時可以使用。
它的原理是使用lottie-web包,將json數(shù)據(jù)渲染為svg(所以打開控制臺,看到的對應元素是svg),這樣沒有意外的話能基本還原設計師的創(chuàng)作(畢竟直接用他們畫的動畫,??????)文章來源地址http://www.zghlxwxcb.cn/news/detail-626039.html

到了這里,關(guān)于svg動畫的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • vector容器刪除元素的幾種簡單方法(詳細實用)

    (1)使用 vector庫函數(shù)“erase”刪除 , 使用erase函數(shù)后容器size自動-1 (2)使用 vector庫函數(shù)“swap和pop_back()\\\" ,由于 pop_back刪除的是最后一個元素 ,所以先移位再刪除 如果從數(shù)組的角度理解,因為數(shù)組存儲的內(nèi)容 在地址上是連續(xù)的 ,要移除目標元素,就沒有庫函數(shù)可以使用,

    2023年04月16日
    瀏覽(24)
  • WinXP打不開網(wǎng)上鄰居的幾種實用處理方法

    小編的好友說之前能通過網(wǎng)上鄰居瀏覽別人的共享文件,不知道怎么了,最近一直無法打開網(wǎng)上鄰居.提示“此工作組的服務器列表當前無法使用”,重啟幾次都無法解決.是什么原因. 一些軟件的開機加速優(yōu)化會建議禁止“Gomputer Browser(計算機列表)”這個服務,沒有這個服務就可能

    2024年02月06日
    瀏覽(20)
  • 生活小妙招之UE custom Decal

    生活小妙招之UE custom Decal

    因為這幾年大部分時間都在搞美術(shù),所以博客相關(guān)的可能會鴿的比較多,阿巴阿巴 https://twitter.com/Tuatara_Games/status/1674034744084905986 之前正好看到一個貼花相關(guān)的小技巧,正好做一個記錄,也在這個的基礎上做一些小的拓展。沒啥難度,但倒覺得是個值得記錄的點。 首先,和

    2024年02月13日
    瀏覽(15)
  • 常見的幾種排序方式

    常見的幾種排序方式

    排序: 所謂排序,就是使一串記錄,按照其中的某個或某些的大小,遞增或遞減的排列起來的操作 穩(wěn)定性: 假定在待排序的記錄序列中,存在多個具有相同的的記錄,若經(jīng)過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在

    2024年02月07日
    瀏覽(22)
  • 創(chuàng)建線程的幾種方式

    創(chuàng)建線程的幾種方式

    線程和進程的區(qū)別: 進程是操作系統(tǒng)進行資源分配的最小單元。 線程是操作系統(tǒng)進行任務分配的最小單元,線程隸屬于進程。 如何開啟線程? 1、繼承Thread類,重寫run方法。 2、實現(xiàn)Runnable接口,實現(xiàn)run方法。 3、實現(xiàn)Callable接口,實現(xiàn)call方法。通過FutureTask創(chuàng)建一個線程,獲

    2024年02月03日
    瀏覽(20)
  • 串口監(jiān)控的幾種方式

    串口監(jiān)控的幾種方式

    目錄 方法1. 使用usb轉(zhuǎn)TTL模塊硬件監(jiān)控; 方法2. 使用JLINK的SWD接口的串口收發(fā)腳進行硬件監(jiān)控; 方法3. 使用虛擬串口進行軟件監(jiān)控; 方法1. 使用usb轉(zhuǎn)TTL模塊硬件監(jiān)控; 方法2. 使用JLINK的SWD接口的串口收發(fā)腳進行硬件監(jiān)控; 吃水不忘挖井人: Jlink v9虛擬串口功能,不用再單獨購

    2024年02月06日
    瀏覽(20)
  • redis的幾種集群方式

    https://www.zhihu.com/people/pan-zhi-74-31 Redis集群介紹Redis集群一般有四種方式,分別為:主從復制、哨兵模式、Cluster以及各大廠的集群方案。在3.0版本之前只支持單實例模式,3.0之后支持了集群方式。在3.0之前各大廠為了解決單實例Redis的存儲瓶頸問題各自推出了自己的集群方案,

    2024年02月05日
    瀏覽(22)
  • python的幾種輸出方式

    python的幾種輸出方式

    1.輸出百分比方法 2. print(f “{}”) 的用法 3. .format格式 ? 4. 加號拼接(針對字符串) 擴展知識 -格式化輸出 字符 含有 %s 字符串 %d 有符號十進制整數(shù),%06d表示輸出的整數(shù)顯示位數(shù)字,不足的地方使用0補全 %f 浮點數(shù),%.02f表示小數(shù)點后只顯示兩位 %% 輸出% ?%s:代表字符串的占

    2024年04月15日
    瀏覽(26)
  • 【100個 Unity實用技能】?? | C# 檢查字典中是否存在某個Key的幾種方法

    【100個 Unity實用技能】?? | C# 檢查字典中是否存在某個Key的幾種方法

    老規(guī)矩,先介紹一下 Unity 的科普小知識: Unity 是 實時3D互動內(nèi)容創(chuàng)作和運營平臺 。 包括 游戲開發(fā) 、 美術(shù) 、 建筑 、 汽車設計 、 影視 在內(nèi)的所有創(chuàng)作者,借助 Unity 將創(chuàng)意變成現(xiàn)實。 Unity 平臺提供一整套完善的軟件解決方案,可用于創(chuàng)作、運營和變現(xiàn)任何實時互動的2D和

    2023年04月08日
    瀏覽(25)
  • Axios傳值的幾種方式

    axios基本使用 默認是get請求 注意:get請求無請求體,可以有body,但是不建議帶 使用get方式進行無參請求 ?使用get方式請求,參數(shù)值直接放在路徑中 ? ?使用get方式請求,參數(shù)拼接在路徑中:方式①? ?使用get方式請求,參數(shù)拼接在路徑中:方式② 使用get方式請求,拼接多個參

    2024年04月17日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包