10 个非常有用的 SVG 动画的 JavaScript 库

本文来自简书,原文地址:http://www.jianshu.com/p/20bfeda0ba3b

SVG 通常可以用作跨分辨率视频。这意味着在一块高分屏幕上不会降低图片的锐度。此外,你甚至可以让SVG动起来,通过使用一些javascript类库。下面,我们分享一些javascript类库,这些类库会帮助我们将SVG动画提高一个等级。

1. Vivus

Vivus
Vivus 是一个能动画js类库,它能够给SVG图像显示出被画出来的过程。Vivus是没有其他类库依赖的(比如jQuery)。你仅仅需要在页面中加入这个.js文件,然后传入需要被用来动画的SVG部分就行。同时通过指定一些配置,它能够在页面加载后直接显示动画效果。


2.Bonsai

Bonsai
Bonsai 是一个功能丰富的 JS 类库,你能够用它来画和 animate 动态内容在网站上。这些内容包括了 HTML5video、变化的 Canvas 和 SVG。通过 Bonsai 框架,你能画一个简单的矩形、甚至一段矩形,如果你喜欢甚至可以画一个丰富的多人卡通游戏进去。


3. Velocity

Velocity
Velocity 是一个 JS 类库,它是用来做频繁动画用的。Velocity 的 js 动画“速度”是非常快的。它比JQuery 快,甚至比 CSS 动画还要快。Velocity 的 API 和 $.fn.animate 很像,都是通过$()来操作。velocity()是另一种方法,相比 $().animate()。总而言之,你应该使用一致的animate效果,包括 fadeIn 和 fadeOut 方法(译者:Velocity 提供了 fadeIn 和 fadeOut 方法)。


4. Raphael

Raphael

RaphaelJS 也通常是用来在网页上画SVG图和动画的。它兼容各种windows浏览器一直到IE6,因为如此,Raphael成为了市面上最受信赖的js(svg)类库。有了它,你可以制作分析图表、地图、游戏就像在厨房做饭一样。


5. Snap

Snap
SnapSVG 是另一个知名 JS 类库,它是由 Dmitry Baranovskiy 开发的(Raphael 同样也是)。同样它也是 Adobe Web Software Group 来维护。和 Raphael 不同的是,它只提供了 ie 最新版支持。这使得 SnapSVG 在体积上小了许多(相比 Raphel)以实现相同的功能(比如 trim)和支持最新的功能。


6. Lazy Line Painter

Lazy Line Painter
Laid back Range Painter 是一个 jQuery 插件,通常被用来作绘制图集,有点像 Vivus。通常你会吐槽的是它的也就只有这么一个特殊的功能。让我来解释下,如果你是用Illustrator 或者Inkscape制作的SVG图像,而且SVG图像没有任何颜色上的变化,仅仅是轨迹的变化,可以用它。


7. SVG.js

SVG.js
SVG.js 是一个轻量级的操作和动画 SVG 类库。你能够操作变化方向、位置和颜色。这还没完,你甚至可以自己实现插件等一些其他功能。这个实例可以attach一些插件,比如svg.filter.js,他可以为你的图片实现 Gaussian blur, desaturase, compare, sepia 等等功能。


8. Walkway

Walkway
Walkway 支持3种方式, path, line 和 用polyline来画的svg线。它提供了一个很好的例子,绘制了一个PlayStation 的集合动画。


9. Progressbar.js

Progressbar.js
ProgressBar.js 是一个可爱的和易于接受的增长曲线图用来绘制卡通SVG线条。有了它,各种形状都可以用作增长曲线。它集成了一些实用的形状如Range,Circle和Block,你甚至可以自行开发一个增长图通过Illustrator或者其他的矢量图绘制工具。 ProgressBar.js 是轻量级,MIT许可的而且支持IE9+。你可以通过它修改大型柱状增长图。你还可以改变属性生成动画,比如stroke breadth, load opacity, load coloring等等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 SVG 动画图片的代码示例,您可以根据您的需求进行修改: ```html <svg width="200" height="200"> <rect x="10" y="10" width="30" height="30" fill="#0077be"> <animate attributeName="x" from="10" to="150" dur="1s" repeatCount="indefinite"></animate> </rect> <circle cx="100" cy="100" r="30" fill="#00ffea"> <animate attributeName="r" from="0" to="50" dur="1s" repeatCount="indefinite"></animate> </circle> <polygon points="130,10 170,40 130,70 90,40" fill="#ffcc00"> <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 100 100" to="360 100 100" dur="2s" repeatCount="indefinite"></animateTransform> </polygon> </svg> ``` 解释一下上面代码的含义: - `<rect>` 标签用于定义一个矩形,其中 `x` 和 `y` 属性定义了矩形左上角的坐标,`width` 和 `height` 属性定义了矩形的宽度和高度。`fill` 属性定义了矩形的填充颜色。`<animate>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `x`。`from` 属性定义了动画的起始值,这里设置为 `10`。`to` 属性定义了动画的结束值,这里设置为 `150`。`dur` 属性定义了动画的持续时间,这里设置为 `1s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 - `<circle>` 标签用于定义一个圆形,其中 `cx` 和 `cy` 属性定义了圆心的坐标,`r` 属性定义了圆的半径。`fill` 属性定义了圆的填充颜色。`<animate>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `r`。`from` 属性定义了动画的起始值,这里设置为 `0`。`to` 属性定义了动画的结束值,这里设置为 `50`。`dur` 属性定义了动画的持续时间,这里设置为 `1s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 - `<polygon>` 标签用于定义一个多边形,其中 `points` 属性定义了多边形各个顶点的坐标。`fill` 属性定义了多边形的填充颜色。`<animateTransform>` 标签用于定义动画,其中 `attributeName` 属性定义了要进行动画的属性,这里设置为 `transform`,表示变换矩阵。`attributeType` 属性定义了属性类型,这里设置为 `XML`。`type` 属性定义了变换类型,这里设置为 `rotate`,表示旋转变换。`from` 属性定义了动画的起始值,这里设置为 `0 100 100`,表示从原始状态开始旋转。`to` 属性定义了动画的结束值,这里设置为 `360 100 100`,表示旋转一周。`dur` 属性定义了动画的持续时间,这里设置为 `2s`。`repeatCount` 属性定义了动画的重复次数,这里设置为 `indefinite`,表示无限循环。 您可以根据需要修改上述代码中的形状、颜色、动画时间等属性,以达到您想要的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值