SVG accumulate和additive動畫屬性
關於SVG更多動畫內容可以參閱SVG animation動畫詳解一章節。
一.accumulate屬性:
此屬性規定是否將當前動畫結束的狀態作為下一次動畫的起始狀態。
具有兩個屬性值:
(1).none:預設值,表示從起始狀態進行下一次動畫。
(2).sum:表示從當前動畫結束的狀態為起始點進行下一次動畫。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0px; padding: 0px; } svg { border:1px solid blue; margin:50px; } </style> </head> <body> <svg width="500" height="180" > <rect x="10" y="10" width="100" height="50" fill="red"> <animate attributeType="XML" attributeName="x" from="10" to="50" dur="1s" accumulate="sum" repeatCount="3" begin="click" fill="freeze"> </animate> </rect> </svg> </body> </html>
預設狀態下,重複的動畫都是從最初的起始狀態重新再執行一次;如果將accumulate屬性值設定為"num",那麼下一次動畫的指定都是在上一次動畫結束狀態基礎上進行的,那麼上面程式碼的執行結果也就很好理解了。
二.additive屬性:
此屬性規定正在進行動畫行為的屬性是否可以進行附加。
預設情況下,高優先順序的動畫會被低優先順序的覆蓋,看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0px; padding: 0px; } svg { border:1px solid blue; width:400px; height:300px; margin:200px; } </style> </head> <body> <svg version="1.1" xmlns="http://www.w3.org/2000/svg"> <rect id="ant" x="0" y="0" width="40" height="40" fill="green"> </rect> <animate xlink:href="#ant" attributeName="x" from="0" to="100" dur="5s" begin="0s" /> <animate xlink:href="#ant" attributeName="x" from="0" to="100" dur="5s" begin="0s" /> </svg> </body> </html>
程式碼為矩形的x屬性設定了兩個動畫效果,但是第二個會覆蓋第一個的效果,也就是優先順序低覆蓋優先順序高。
再來看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0px; padding: 0px; } svg { border:1px solid blue; width:400px; height:300px; margin:200px; } </style> </head> <body> <svg version="1.1" xmlns="http://www.w3.org/2000/svg"> <rect id="ant" x="0" y="0" width="40" height="40" fill="green"> </rect> <animate xlink:href="#ant" attributeName="x" from="0" to="100" dur="5s" begin="0s" /> <animate xlink:href="#ant" additive="sum" attributeName="x" from="0" to="100" dur="5s" begin="0s" /> </svg> </body> </html>
為第二個動畫元素新增additive="sum",是不是動畫速度加快了一倍,這就是優先順序高的動畫效果會附加到優先順序低的效果智商。
與accumulate一樣,additive具有兩個屬性值:
(1).none:預設值,覆蓋前面的動畫效果。
(2).sum:具有動畫附加效果。
相關文章
- SVG 動畫 fill 屬性SVG動畫
- SVG restart 動畫屬性SVGREST動畫
- SVG restart動畫屬性SVGREST動畫
- SVG repeatCount和repeatDur屬性SVG
- 屬性動畫動畫
- Android 動畫詳解:屬性動畫、View 動畫和幀動畫Android動畫View
- SVG keyPoints 屬性SVG
- Android 動畫之屬性動畫Android動畫
- android屬性動畫Android動畫
- SVG 動畫SVG動畫
- 【Android 動畫】動畫詳解之屬性動畫(三)Android動畫
- 【Android 動畫】動畫詳解之屬性動畫(五)Android動畫
- 初識屬性動畫——使用Animator建立動畫動畫
- 屬性動畫與差值器動畫
- Android 屬性動畫實戰Android動畫
- VueJs中動態更改svg的相關屬性VueJSSVG
- SVG:理解stroke-dasharray和stroke-dashoffset屬性SVG
- 屬性動畫-波紋擴散WaveView動畫View
- Android 顏色漸變 屬性動畫Android動畫
- 三談屬性動畫——Keyframe以及ViewPropertyAnimator動畫View
- 檢視屬性+物件動畫元件ViewPropertyObjectAnimator物件動畫元件ViewObject
- Android備忘錄《屬性動畫-ValueAnimator》Android動畫
- Android 自定義View:屬性動畫(六)AndroidView動畫
- SVG矩形旋轉動畫SVG動畫
- SVG 漸變動畫效果SVG動畫
- SVG 文字路徑動畫SVG動畫
- SVG animateTransform變換動畫SVGORM動畫
- 使用 MacSVG 建立 SVG 動畫MacSVG動畫
- 屬性動畫 ValueAnimator 執行原理全解析動畫
- svg02——svg繪製基本圖形,瞭解常用的屬性SVG
- svg 線條動畫淺嘗SVG動畫
- PHP動態屬性和stdclassPHP
- SVG viewport視口和畫布SVGView
- CSS動畫屬性關鍵幀keyframes全解析CSS動畫
- defer 屬性和 async 屬性
- svg畫弧SVG
- SVG-動畫的一把好手SVG動畫
- SVG剪下蒙版屬性clip-path實戰,動態蒙版+動態圖形,動動組合SVG