对 JavaScript 交互式绘图库有什么建议吗?只需要绘制不同颜色的线条、多边形、文本。IE/Firefox/Opera/Safari 兼容。
10 回答
Raphael在这方面非常酷,并且可以跨浏览器工作,因为它使用 VML(用于 MSIE)和 SVG(用于其他所有内容)。
John Resig 的Processing.js是一个很好的框架。
您可以直接使用画布对象进行 2D 绘制。IE 需要 excanvas 库。
http://developer.mozilla.org/En/Drawing_Graphics_with_Canvas
试试http://www.walterzorn.de/en/jsgraphics/jsgraphics_e.htm。这是我找到的最好的(不使用 SVG),并且可以在大多数没有插件的浏览器中使用。
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.
Checkout the jQuery Drawing plugin, and you can also look at the Mozilla Canvas reference and tutorial.
还有mxGraph。这不使用 IE 的 excanvas。Excanvas 比使用 VML 慢得多,特别是重用相同的 VML 节点而不是删除、添加 DOM 节点以进行重绘。这通常是一个被忽视的点,但是关于 IE 性能的研究实在是太糟糕了。
根据您需要跨浏览器的程度以及进行输出的目标,您可能会查看 Canvas 元素和相关的 javascript。