我正在考虑开发一个类似于 stackoverflow 的网站,但答案也可能包括图纸(在这种情况下是示意图)。我想在答案表格中有一个区域,他们可以在不需要特殊插件等的情况下制作这个示意图。
- 我们是否已经到了 SVG 已经或应该很快(1-2 年)达到临界质量的地步,以便设计一个以脚本运行 SVG 作为主要功能的网站是合理的(即,需要 Firefox 或其他 SVG/AJAX 兼容的浏览器)?
- 学习跨平台 SVG 脚本(可能在 javascript 中)有哪些好的资源?
——亚当·戴维斯
我正在考虑开发一个类似于 stackoverflow 的网站,但答案也可能包括图纸(在这种情况下是示意图)。我想在答案表格中有一个区域,他们可以在不需要特殊插件等的情况下制作这个示意图。
——亚当·戴维斯
Raphael看起来像是对跨浏览器矢量图形问题的一个有趣的尝试。
不幸的是,我没有答案,但我确实有三个指向您可以查看的项目的指针。
第一个是Sun Labs的Dan Ingalls(是的, Dan Ingalls)的Lively Kernel 。它是基于 SVG 的 JavaScript 中 Smalltalk 虚拟世界的实现。更准确地说,它是使用 SVG 的 JavaScript 中 Squeak Smalltalk 的 Morphic GUI 框架的实现,以及 JavaScript 中 Squeak Smalltalk 的(部分)端口。
或者,如果您不是 Smalltalker 并且上述内容对您没有意义:它是一个操作系统,用 JavaScript 编写,JavaScript 解释器作为 CPU,SVG 作为图形卡,浏览器作为计算机。
当涉及到 JavaScript 和 SVG 时,这几乎是极端的。它只能在 Safari 3 中完全运行,部分在 Firefox 3 中运行,尽管 Internet Explorer 也有一个实验性端口。
第二个项目是 John Resig 的Processing.js将 Processing 可视化语言移植到 JavaScript。<canvas>
正是由于您提到的问题,它使用元素而不是 SVG。然而,这个仅适用于 Firefox 3。
第三个是Useless Pickles在 JavaScript 中的 Real-Time 3D 。它只使用JavaScript、DOM 和 CSS,而不使用SVG<canvas>
或 Flash 或其他任何东西。它几乎可以移植到任何浏览器,包括 Internet Explorer 7 及更高版本。做 2D 应该比这更容易。
在这三个项目之间,您应该能够找到一些灵感,并且还可以找到一些尝试使用 JavaScript 和 SVG 或 JavaScript 和图形来突破极限的人,他们可以告诉您哪些有效,哪些无效。
结论:做跨浏览器 SVG 或跨浏览器<canvas>
几乎是不可能的,但有点疯狂,没有SVG 的跨浏览器图形还是<canvas>
有可能的。
SVGWeb 是一个脚本,它使用 Flash 向 IE 添加近乎原生的 SVG 功能。所有其他主流浏览器都支持 SVG。
1/ 可能永远不会——如果 IE 想要添加它,那么我会想要的,尽管它现在已经这样做了;但是有一些使用SilverLight和Gecko来提供渲染的解决方法。另一方面,有可用的跨浏览器图形 API。我使用 XULRunner 和 SVG 完成了较大的前端,但在 web 上没有任何东西必须迎合 IE。
2/ 我最常提到的两个是mozilla.org 上的 SVG 页面和这个SVG DOM 参考。我所有的 SVG 链接都在这里
http://www.bpel4chor.org/editor/现有一位编辑器;此外,如果您想要的只是所有弧线都在网格上的示意图,那么您可以使用没有 SVG 的 div 和图像很好地做到这一点。或者你可以走低保真路线
正如@jwmittag 提到的那样<canvas>
是一个选项。
它适用于 Safari 和 Firefox 3、Opera 9,并且人们正在开发对 IE 的支持。
您可以轻松捕获与当前工具和属性相关的鼠标点击。在每个页面显示上重绘画布。
我刚刚完成了一个项目<canvas>
,它是一个简单且非常强大的 API,特别是如果您曾经做过任何 OpenGL 或 Cairo 工作。
祝你好运,听起来是个很酷的项目。