45

对 JavaScript 交互式绘图库有什么建议吗?只需要绘制不同颜色的线条、多边形、文本。IE/Firefox/Opera/Safari 兼容。

4

10 回答 10

47

Raphael在这方面非常酷,并且可以跨浏览器工作,因为它使用 VML(用于 MSIE)和 SVG(用于其他所有内容)。

于 2008-09-18T20:26:32.177 回答
15

John Resig 的Processing.js是一个很好的框架。

于 2008-09-18T20:24:51.120 回答
8

您可以直接使用画布对象进行 2D 绘制。IE 需要 excanvas 库。

http://developer.mozilla.org/En/Drawing_Graphics_with_Canvas

于 2008-09-18T20:23:41.077 回答
3

试试http://www.walterzorn.de/en/jsgraphics/jsgraphics_e.htm。这是我找到的最好的(不使用 SVG),并且可以在大多数没有插件的浏览器中使用。

于 2008-09-18T20:25:33.320 回答
2

Drawing text with the canvas tag is a big pain. Your options are to use regular divs absolutely positioned in the right places, or find/write a font layout engine (example), or wait for a new standard to be implemented that lets you draw text. SVG deals with this much better.

In IE you have ExplorerCanvas to simulate the canvas API with IE's own VML markup. However, native VML can do text on a path and such things much like SVG. I think theoretically if you want complex text handling you'd want SVG and VML like the Raphael library that Dan mentioned.

You might also consider Flash for a moment before starting.

于 2008-09-18T20:30:47.050 回答
2

As mentioned above, canvas is the way you should go. IE doesn't support it natively, so you'll need to download ExCanvas to ensure cross-browser compatibility. I'd recommend looking at Ajaxian for some projects that use the canvas tag.

于 2008-09-18T20:31:17.017 回答
2

Checkout the jQuery Drawing plugin, and you can also look at the Mozilla Canvas reference and tutorial.

于 2008-09-18T20:33:27.653 回答
2

还有mxGraph。这不使用 IE 的 excanvas。Excanvas 比使用 VML 慢得多,特别是重用相同的 VML 节点而不是删除、添加 DOM 节点以进行重绘。这通常是一个被忽视的点,但是关于 IE 性能的研究实在是太糟糕了。

于 2011-02-18T15:18:50.557 回答
1

根据您需要跨浏览器的程度以及进行输出的目标,您可能会查看 Canvas 元素和相关的 javascript。

帆布

于 2008-09-18T20:24:52.523 回答
0

D3.js

D3.js 是一个基于数据操作文档的 JavaScript 库。D3 帮助您使用 HTML、SVG 和 CSS 将数据变为现实。D3 对 Web 标准的重视为您提供了现代浏览器的全部功能,而无需将自己束缚于专有框架,结合了强大的可视化组件和数据驱动的 DOM 操作方法。

也看看这个讨论

于 2015-05-27T14:04:29.483 回答