HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
end = "end-value-list" 定义了动画的结束时间。可以是分号分开的一系列值。 min = Clock-value | "media" max = Clock-value | "media" 设置了动画持续时间的最大最小值。 restart = "always" | "whenNotActive" | "never" 设置了动画能否随时重新开始。always代表动画可以随时开始。whenNotActive代表只能在没播放的时候重新开始,比如前一次播放结束了。never表示动画不能重新开始。 repeatCount = numeric value | "indefinite" 设置了动画重复的次数。 indefinite代表无限重复。 repeatDur = Clock-value | "indefinite" 设置重复的总的动画时间。indefinite代表无限重复。 fill = "freeze" | "remove(默认值)" 设置了动画结束后元素的状态。freeze表示动画结束后元素停留在动画的最后状态。remove代表动画结束以后元素回到动画前的状态,这个是默认值。 第三类:定义动画值的属性 这些属性定义了被执行动画的属性的取值情况。其实是定义了关键帧和插值的一些算法。 calcMode = "discrete | linear(默认值) | paced | spline" 定义了动画插值的方式:discrete:离散的,不插值;linear:线性插值;paced:步长插值;spline:样条插值。默认是linear(线性插值),但是如果属性不支持线性插值,则会采用discrete插值方式。 values = "<list>" 定义了以分号分隔的动画关键帧的值列表。支持向量值。 keyTimes = "<list>" 定义了以分号分隔的动画关键帧的时间列表。这个和values是一一对应的。这个值是受插值算法影响的,如果是线性(linear)和样条插值(spline),则keyTimes的第一个值必须是0,最后一个值必须是1。对于离散(discrete)的不插值的方式,keyTimes的第一个值必须是0。对于步长插值方式,很显然是不需要keyTimes。而且如果动画的持续时间设置为indefinite,则忽略keyTimes。 keySplines = "<list>" 这个属性定义了样条插值(贝塞尔插值)时的控制点,显然只有在插值模式选择为spline才起作用。这个列表中的值取值范围是0到1。 from = "<value>" to = "<value>" by = "<value>" 定义动画属性的起始值,结束值和步长值。这里需要注意:如果values已经制定了相关的值,则任何的from/to/by值都会被忽略。 第四类:控制动画是否是增量式的属性 有时候,如果相关的值设置的不是绝对值,而是增量值是非常有用的,使用additive属性可以达到这个目的。 additive = "replace(默认值) | sum" 这个属性控制了动画是否是增量式的。sum表示动画会较大相关的属性值或者其他低优先级的动画上。replace是默认值,表示动画会覆盖相关的属性值或者其他低优先级的动画。看一个小例子: 复制代码 代码如下: 这个例子演示了矩形width递增的动画效果。 有时候,如果重复的动画结果是叠加起来的,也非常有用,使用accumulate属性可以达到这个目的。 accumulate = "none(默认值) | sum" 这个属性控制了动画效果是否是累积的。none是默认值,表示重复的动画不累积。sum表示重复的动画效果是累积的。对于单次执行的动画,该属性没有意义。看个小例子: 复制代码 代码如下: 这个例子演示了矩形的长度在每次迭代中都在增加。 动画元素小结 SVG提供了下列动画元素: 1. animate元素 这个是最基本的动画元素,可以直接为相关属性提供不同时间点的值。 2. set元素 这个是animate元素的简写形式,支持所有的属性类型,尤其是当对非数字型的属性(例如visibility)进行动画时很方便。set元素是非增量的,相关的属性对之无效。 to指定的动画结束值类型一定要符合属性的取值类型。 3. animateMotion元素 路劲动画元素。这个元素大多数属性都和上面一样,只有下面几个稍微有点区别: calcMode = "discrete | linear | paced | spline" 这个属性的默认值不同,在该元素中默认的是paced。 path = "<path-data>" 动画元素移动的路径,格式与path元素的d属性的值的格式是一致的。 keyPoints = "<list-of-numbers>" 这个属性的值是一系列分号给开的浮点数值,每个值的取值范围是0~1。这些值代表了keyTimes属性指定的对应时间点移动的距离,这里距离具体是多少是由浏览器自己决定的。 rotate = <number> | auto | auto-reverse" 这个属性指定了元素移动时旋转的角度。默认值是0,数字代表旋转的角度,auto表示随着路劲的方向转动物体。auto-reverse表示转向与移动方向相反的方向。 此外animateMotion元素的from,by,to,values的值都是坐标对组成的;x值与y值之间用逗号或空格分开,每个坐标对之间用分号隔开比如from="33,15"表示起点x坐标为33,y坐标为15。 指定运动路径的方式有两种:一种为直接给path属性赋值,一种为使用mpath元素作为animateMotionde的子元素指定路径。如果同时使用这两种方式,则使用mpath元素优先级高。这两种方式优先级都比values,from,by,to高。 看一个小例子: 复制代码 代码如下:(编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |