我正在使用 SVG 和 JavaScript/jQuery 开发交互式界面,我正在尝试在Raphael和jQuery SVG之间做出决定。我想知道
- 两者之间的权衡是什么
- 发展势头似乎在哪里。
我不需要 Raphael 中的 VML/IE 支持,或者 jQuery SVG 的绘图能力。我主要对在 SVG 画布上创建、动画和操作单个项目的最优雅方式感兴趣。
我正在使用 SVG 和 JavaScript/jQuery 开发交互式界面,我正在尝试在Raphael和jQuery SVG之间做出决定。我想知道
我不需要 Raphael 中的 VML/IE 支持,或者 jQuery SVG 的绘图能力。我主要对在 SVG 画布上创建、动画和操作单个项目的最优雅方式感兴趣。
我最近同时使用了 Raphael 和 jQuery SVG - 这是我的想法:
优点:一个很好的入门库,很容易用 SVG 快速做很多事情。写得很好,有据可查。大量示例和演示。非常可扩展的架构。很棒的动画。
缺点:是在实际 SVG 标记之上的一层,使得难以用 SVG 做更复杂的事情 - 例如分组(它支持集合,但不支持组)。编辑现有元素时效果不佳。
优点:一个 jquery 插件,如果你已经在使用 jQuery。写得很好,有据可查。很多例子和演示。支持大多数 SVG 元素,允许轻松访问元素
缺点:架构不像 Raphael 那样可扩展。有些事情可以更好地记录(例如 SVG 元素的配置)。编辑现有元素时效果不佳。动画依赖于 SVG 语义 - 这不是那么好。
SnapSVG 是 Raphael 的继任者。它仅在支持 SVG 的浏览器中受支持,并且几乎支持 SVG 的所有功能。
如果您正在做一些快速而简单的事情,Raphael 是一个简单的选择。如果您打算做一些更复杂的事情,我选择使用 jQuery SVG,因为与使用 Raphael 相比,我可以更轻松地操作实际标记。如果你想要一个非 jQuery 解决方案,那么 SnapSVG 是一个不错的选择。
对于后代,我想指出我最终选择了 Raphael,因为干净的 API 和“免费”的 IE 支持,还因为积极的开发看起来很有希望(例如,事件支持刚刚在 0.7 中添加)。但是,我不会回答这个问题,我仍然有兴趣了解其他人使用 Javascript + SVG 库的经验。
我是 Raphael 的忠实粉丝,而且开发势头似乎很强劲(上周晚些时候发布了 0.85 版)。另一个很大的好处是它的开发者Dmitry Baranovskiy目前正在开发一个 Raphael 图表插件g.raphael,它看起来非常光滑(在Flickr上有一些早期版本的输出样本) .
然而,为了将另一个可能的竞争者加入 SVG 库组合,Google 的SVG Web确实看起来非常有前途(尽管我不是 Flash 的忠实粉丝,它用于在非 SVG 兼容的浏览器中呈现)。可能值得一看,尤其是在即将到来的SVG Open 会议上。
Raphael 确实更容易设置和使用,但请注意,在 SVG 中有一些表达内容的方法在 Raphael 中是不可能的。如上所述,没有“组”。这意味着您不能实现坐标变换层。相反,只有一种坐标变换可用。
如果您的设计依赖于嵌套坐标变换,那么 Raphael 不适合您。
Oh Raphael 自 6 月以来取得了重大进展。有一个新的图表库可以使用它,这些非常引人注目。Raphael 还支持完整的 SVG 路径语法,并结合了非常先进的路径方法。在我的网站(无耻插件)上看到 1.2.8+,然后从那里跳到 Dmitry 的网站。 http://www.irunmywebsite.com/raphael/raphaelsource.html