jQuery SVG vs. 拉斐尔 [已关闭]

2022-08-30 00:32:10

我正在使用SVG和JavaScript / jQuery开发交互式界面,我试图在RaphaeljQuery SVG之间做出决定。我想知道

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

我不需要拉斐尔的VML / IE支持,也不需要jQuery SVG的绘图功能。我主要对在 SVG 画布上创建、设置动画和操作单个项目的最优雅方式感兴趣。


答案 1

我最近同时使用了Raphael和jQuery SVG - 这是我的想法:

拉斐尔

优点:一个很好的入门库,很容易用SVG快速做很多事情。写得很好,有据可查。很多例子和演示。非常可扩展的体系结构。很棒的动画。

缺点:是实际SVG标记上的一层,使得很难用SVG做更复杂的事情 - 例如分组(它支持Sets,但不支持组)。不能很好地编辑已经存在的元素。

jQuery SVG

优点:一个jquery插件,如果你已经在使用jQuery的话。写得很好,有据可查。很多例子和演示。支持大多数SVG元素,允许轻松本机访问元素

缺点:建筑不像拉斐尔那样可扩展。有些事情可以更好地记录(比如SVG元素的配置)。不能很好地编辑已经存在的元素。依靠SVG语义进行动画 - 这并不是那么好。

SnapSVG作为拉斐尔的纯SVG版本

SnapSVG是Raphael的继任者。它仅在启用SVG的浏览器中受支持,并且支持SVG的几乎所有功能。

结论

如果你正在做一些快速而简单的事情,拉斐尔是一个简单的选择。如果你要做一些更复杂的事情,我选择使用jQuery SVG,因为我可以比Raphael更容易地操作实际的标记。如果你想要一个非jQuery解决方案,那么SnapSVG是一个不错的选择。


答案 2

对于后代,我想指出,我最终选择了Raphael,因为干净的API和“免费”的IE支持,也因为积极的开发看起来很有希望(例如,事件支持刚刚在0.7中添加)。但是,我不会回答这个问题,我仍然有兴趣听听其他人使用Javascript + SVG库的经验。