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