我在使用SVG和JavaScript/jQuery的交互界面上工作,我试图在Raphael和jQuery SVG之间做出决定。我想知道

这两者之间的权衡是什么 发展势头似乎在哪里。

我不需要Raphael中的VML/IE支持,也不需要jQuery SVG的绘图功能。我主要感兴趣的是在SVG画布上创建、制作动画和操作单个项目的最优雅的方法。


当前回答

我是Raphael的超级粉丝,开发势头似乎很强劲(上周晚些时候发布了0.85版本)。另一个很大的优点是,它的开发者Dmitry Baranovskiy目前正在开发Raphael图表插件g.raphael,这个插件看起来相当漂亮(在Flickr上有一些早期版本的输出样本)。

然而,为了在SVG库中加入另一个可能的竞争者,谷歌的SVG Web看起来确实很有前途(尽管我不是Flash的狂热爱好者,它使用Flash在不兼容SVG的浏览器中进行渲染)。可能是值得关注的,特别是在即将到来的SVG Open会议上。

其他回答

拉斐尔从六月起就开始了新的生活。 有一个新的图表库可以使用它,这些非常引人注目。 Raphael还支持完整的SVG路径语法,并结合了真正高级的路径方法。来看看1.2.8+在我的网站(无耻插头),然后从那里跳到德米特里的网站。 http://www.irunmywebsite.com/raphael/raphaelsource.html

对于那些不关心IE6/IE7的人来说,编写Raphael的同一个人专门为现代浏览器构建了一个svg引擎:Snap.svg…他们有一个非常好的网站,上面有很好的文档:http://snapsvg.io

svg开箱即用再容易不过了,它可以操作/更新现有svg或生成新的svg。你可以在照片上看到这些东西。IO关于页面,但这里有一个快速运行:

Cons

为了使用snap的功能,你必须放弃对旧浏览器的支持。Raphael支持IE6/IE7等浏览器,snap功能仅支持IE9及以上版本,Safari, Chrome, Firefox和Opera。

Pros

Implements the full features of SVG like masking, clipping, patterns, full gradients, groups, and more. Ability to work with existing SVGs: content does not have to be generated with Snap for it to work with Snap, allowing you to create the content with any common design tools. Full animation support using a straightforward, easy-to-implement JavaScript API Works with strings of SVGs (for example, SVG files loaded via Ajax) without having to actually render them first, similar to a resource container or sprite sheet.

如果你感兴趣,请访问:http://snapsvg.io

Raphael确实更容易设置和运行,但请注意,在SVG中有一些表示事物的方法在Raphael中是不可能的。如上所述,没有“组”。这意味着您不能实现坐标转换的层。相反,只有一个坐标变换可用。

如果您的设计依赖于嵌套坐标变换,Raphael不适合您。

您可能想要查看的另一个svg javascript库是d3.js。http://d3js.org/

我更喜欢使用RaphaelJS,因为它具有出色的跨浏览器能力。然而,有些SVG和VML效果无法用RaphaelJS实现(复杂的渐变…)

谷歌还开发了自己的库来支持IE中的SVG: http://svgweb.googlecode.com/files/svgweb-2009-08-20-B.zip