自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇文章帶你了解SVG <Animation> 動畫元素

開發(fā) 前端
SVG <Animation> 動畫元素用于為SVG圖形制作動畫。動畫元素最初是在同步多媒體集成語言(SMIL)中定義的。在動畫中,必須指定屬性,運(yùn)動,顏色,動畫的開始時間和動畫的持續(xù)時間的開始和結(jié)束值。

[[355648]]

SVG <Animation> 動畫元素用于為SVG圖形制作動畫。動畫元素最初是在同步多媒體集成語言(SMIL)中定義的。在動畫中,必須指定屬性,運(yùn)動,顏色,動畫的開始時間和動畫的持續(xù)時間的開始和結(jié)束值。

可以對SVG圖像中的形狀進(jìn)行動畫處理。有幾種不同的動畫SVG形狀的方法。

一、SVG動畫

這是一個簡單的SVG動畫。

  1. <svg xmlns="http://www.w3.org/2000/svg" 
  2.     xmlns:xlink="http://www.w3.org/1999/xlink"
  3.  
  4.     <rect x="10" y="10" height="110" width="110" 
  5.          style="stroke:#ff0000; fill: #0000ff"
  6.  
  7.         <animateTransform 
  8.             attributeName="transform" 
  9.             begin="0s" 
  10.             dur="20s" 
  11.             type="rotate" 
  12.             from="0 60 60" 
  13.             to="360 60 60" 
  14.             repeatCount="indefinite" 
  15.         /> 
  16.     </rect> 
  17.  
  18. </svg> 

運(yùn)行效果:

注意<rect>元素如何在元素 <animateTransform>內(nèi)部嵌套。正是這個元素使矩形動畫化。

二、動畫選項概述

這些SVG動畫元素中的每一個都設(shè)置或設(shè)置SVG形狀的不同方面的動畫。這些動畫元素將在本文的其余部分中進(jìn)行說明。

1. set

該set元素是SVG動畫元素中最簡單的元素。在經(jīng)過特定時間間隔后,它只是將屬性設(shè)置為特定值。因此,形狀不會連續(xù)進(jìn)行動畫處理,而只是更改屬性值一次。

這是一個<set>元素示例:

  1. <svg width="500"  height="100"
  2.   <circle cx="30" cy="30" r="25" style="stroke: none; fill: #0000ff;"
  3.     <set attributeName="r" attributeType="XML" 
  4.          to="100" 
  5.          begin="5s"  /> 
  6.  
  7. </circle> 
  8. </svg> 

注:

<set>元素在特定時間設(shè)置屬性的值。要設(shè)置的屬性名稱在attributeName屬性中指定。將其設(shè)置為的值在to屬性中指定。設(shè)置屬性值的時間在begin屬性中指定。

運(yùn)行效果:(r在5秒鐘后將屬性設(shè)置為100):

2. attributeType

可以設(shè)置形狀的CSS屬性的動畫。如果這樣做,則需要將attributeType設(shè)置為CSS。如果不提供attributeType屬性,則瀏覽器將嘗試猜測要制作動畫的屬性是XML屬性還是CSS屬性。

3. animate

animate元素用于為SVG形狀的屬性設(shè)置動畫??梢詫nimate元素嵌套在要應(yīng)用的形狀內(nèi)。

示例

  1. <svg width="500"  height="100"
  2.   <circle cx="30" cy="30" r="25" style="stroke: none; fill: #0000ff;"
  3.     <animate attributeName="cx" attributeType="XML" 
  4.              from="30"  to="470" 
  5.              begin="0s" dur="5s" 
  6.              fill="remove" repeatCount="indefinite"/> 
  7.   </circle> 
  8. </svg> 

運(yùn)行效果:

解析:

此示例將<circle>元素的cx屬性從值30(“from”屬性)設(shè)置為值479(“to”屬性)的動畫。動畫從0秒開始(“begin”屬性),持續(xù)時間為5秒(“dur”屬性)。

動畫完成后,動畫屬性將設(shè)置回其原始值(fill=“remove”屬性設(shè)置)。如果希望動畫屬性保持動畫的“到”值(to-value),請將“fill ”屬性設(shè)定為“freeze”。動畫無限期重復(fù)(“repeatCount”屬性)。

4. animateTransform

<Animate>元素不能做到這一點,<AnimateTransform>元素可以為形狀的Transform屬性設(shè)置動畫。

例:

  1. <svg width="500" height="100"
  2.             <rect x="20" y="20" width="100" height="40" style="stroke: #ff00ff; fill:none;"
  3.                 <animateTransform attributeName="transform" type="rotate" from="0 100 100" to="360 100 100" begin="0s" dur="10s" 
  4.                  repeatCount="indefinite" /> 
  5.             </rect> 
  6.         </svg> 

運(yùn)行效果:

解析:

例中對嵌套transform其中的<rect>元素的屬性進(jìn)行動畫處理。該type屬性設(shè)置為rotate(旋轉(zhuǎn)變換功能),表示動畫變換將是旋轉(zhuǎn)。在from和to屬性設(shè)定的參數(shù)進(jìn)行動畫,并傳遞給rotate函數(shù)。本示例圍繞點100,100從0度旋轉(zhuǎn)到360度。

使正方形的比例動畫化。

示例

  1. <svg width="500" height="200"
  2.             <rect x="20" y="20" width="40" height="40" style="stroke: #FF0000; fill: none;"
  3.                 <animateTransform attributeName="transform" type="scale" from="1 1" to="2 3" begin="0s" dur="10s" repeatCount="indefinite"
  4.         </animateTransform> 
  5.             </rect> 
  6. </svg> 

運(yùn)行效果:

注:

from 和 to 屬性包含通常作為參數(shù)傳遞給scale()轉(zhuǎn)換函數(shù)的值。

三、總結(jié)

本文基于HTML基礎(chǔ),介紹了SVG中<Animation>元素。對每一種動畫的效果進(jìn)行詳細(xì)講解。每一種動畫中都采用靜態(tài)圖解析的方式來呈現(xiàn)動態(tài)運(yùn)用的效果。通過具體的案例分析,能夠讓讀者更好的理解。

歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

代碼很簡單,希望對你學(xué)習(xí)有幫助。

本文轉(zhuǎn)載自微信公眾號「前端進(jìn)階學(xué)習(xí)交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端進(jìn)階學(xué)習(xí)交流公眾號。

 

責(zé)任編輯:武曉燕 來源: 前端進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2020-12-25 09:42:51

SVGtspanSVG基礎(chǔ)

2020-12-29 09:39:38

元素屬性定位

2021-01-01 09:18:48

SVG圖像元素

2020-12-08 08:09:49

SVG圖標(biāo)Web

2021-02-26 20:01:57

SVG濾鏡元素

2021-03-26 09:57:51

SVGHtml基礎(chǔ)SVG圖像

2022-05-13 16:21:38

javascrip腳本SVG

2021-01-04 10:14:42

SVG標(biāo)簽元素

2021-02-05 18:36:15

SVG形狀屬性

2020-12-15 08:15:34

SVG元素路徑

2020-12-23 08:12:08

javascriptSVG腳本SVG元素

2021-02-23 06:51:16

SVGstrokeHtml基礎(chǔ)

2020-12-11 08:39:14

SVG代碼剪切

2021-05-07 14:17:01

JavaScript元素網(wǎng)頁

2025-02-25 11:12:53

JavaScriptHTML元素CSS

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2020-11-10 10:48:10

JavaScript屬性對象

2021-01-29 18:41:16

JavaScript函數(shù)語法

2021-02-02 18:39:05

JavaScript
點贊
收藏

51CTO技術(shù)棧公眾號