关于 javascript:编写 SVG 脚本

关于 javascript:编写 SVG 脚本

Scripting SVG

我正在考虑开发一个类似于 stackoverflow 的网站,但答案也可能包括图纸(在这种情况下为示意图)。我想在答案表格中有一个区域,他们可以在不需要特殊插件等的情况下制作这个示意图。

  • 我们是否已经到了 SVG 已经或应该很快(1-2 年)达到临界质量的地步,以便设计一个以脚本运行 SVG 作为主要功能的网站是合理的(即,需要 Firefox 或其他兼容 SVG/AJAX 的浏览器)?
  • 学习跨平台 SVG 脚本(可能在 javascript 中)有哪些好的资源?
  • -亚当·戴维斯


    Raphael 对跨浏览器矢量图形问题的看法很有趣。


    很遗憾,我没有答案,但我确实提供了三个您可以查看的项目的指针。

    第一个是 Sun Labs 的 Dan Ingalls(没错,就是 Dan Ingalls)的 Lively Kernel。它是基于 SVG 的 JavaScript 中 Smalltalk 虚拟世界的实现。更准确地说,它是在 JavaScript 中使用 SVG 和 Squeak Smalltalk 的(部分)端口在 JavaScript 中实现的 Morphic GUI 框架。

    或者,如果您不是 Smalltalker 并且以上内容对您没有意义:它是一个操作系统,用 JavaScript 编写,JavaScript 解释器作为 CPU,SVG 作为显卡,浏览器作为计算机.

    当涉及到 JavaScript 和 SVG 时,这几乎是最极端的。它只能在 Safari 3 中完全运行,部分在 Firefox 3 中运行,尽管 Internet Explorer 也有一个实验性端口。

    第二个项目是 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 及更高版本。做 2D 应该比这更容易。

    在这三个项目之间,您应该能够找到一些灵感,还可以找到一些尝试使用 JavaScript 和 SVG 或 JavaScript 和图形来突破极限的人,他们可以告诉您哪些有效,哪些无效。

    结论:做跨浏览器 SVG 或跨浏览器 canvas 几乎是不可能的,但有点疯狂,没有 SVG 或 canvas 的跨浏览器图形是可能的。


    SVGWeb 是一个脚本,它使用 Flash 将接近原生的 SVG 功能添加到 IE。所有其他主流浏览器都支持 SVG。

    http://code.google.com/p/svgweb/


    正如@jwmittag 提到的, canvas 是一个选项。

    它适用于 Saffari 和 Firefox 3、Opera 9,并且人们正在开发对 IE 的支持。

    您可以轻松捕获与当前工具和属性相关的鼠标点击。
    在每个页面显示上重绘画布。

    我刚刚使用 canvas 完成了一个项目,它是一个简单且非常强大的 API,特别是如果您曾经做过任何 OpenGL 或 Cairo 工作。

    祝你好运,听起来是个很酷的项目。


    1/ 可能永远不会——如果 IE 想要添加它,那么我会想要的,尽管它现在已经这样做了;但是有一些使用 SilverLight 和 Gecko 来提供渲染的解决方法。另一方面,有可用的跨浏览器图形 API。我使用 XULRunner 和 SVG 完成了较大的前端,但网络上没有任何东西必须迎合 IE。

    2/ 我最常提到的两个是 mozilla.org 上的 SVG 页面和这个 SVG DOM 参考。我所有的 SVG 链接都在这里美味

    在 http://www.bpel4chor.org/editor/ 现有一位编辑器;此外,如果您想要的只是所有弧线都在网格上的示意图,那么您可以使用没有 SVG 的 div 和图像很好地做到这一点。或者你可以走低保真路线


    推荐阅读

      linux命令下写脚本?

      linux命令下写脚本?,服务,系统,环境,代码,名称,命令,脚本,发行,在线,情况,三

      linux把命令变成脚本?

      linux把命令变成脚本?,系统,环境,工作,脚本,命令,信息,基础,代码,文件,变量,

      linux访问网站的命令?

      linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

      linux脚本命令输信息?

      linux脚本命令输信息?,系统,信息,代码,脚本,数据,工具,发行,命令,变量,文件,l

      linux上启动脚本命令?

      linux上启动脚本命令?,服务,状态,系统,代码,脚本,工作,周期性,命令,文件,方

      linux下编写脚本命令?

      linux下编写脚本命令?,代码,时间,工具,标准,系统,实战,平台,最新,网站,文件,l

      linux定时器脚本命令?

      linux定时器脚本命令?,系统,代码,时间,工具,工作,定期,周期性,异常,任务,脚

      linux停止脚本命令行?

      linux停止脚本命令行?,系统,工作,平台,命令,基础,第一,环境,信息,终端,程序,

      linux命令运行脚本?

      linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运

      linux脚本赋权限命令?

      linux脚本赋权限命令?,系统,档案,工作,命令,工具,脚本,权限,文件,程序,文件

      linux关闭脚本命令?

      linux关闭脚本命令?,系统,服务,状态,命令,档案,暂停,软件,工具,数据,电脑,lin

      linux激活脚本命令?

      linux激活脚本命令?,系统,信息,环境,脚本,命令,代码,服务,工具,标准,官网,如

      linux命令行登陆网站?

      linux命令行登陆网站?,网站,系统,密码,服务,地址,环境,网络,软件,状态,项目,

      linux循环命令脚本?

      linux循环命令脚本?,代码,系统,增长,工具,官网,项目,流程,数据,数字,底部,lin

      执行脚本命令linux?

      执行脚本命令linux?,工作,脚本,服务,命令,文件,方法,权限,目录,用户,可能会,L

      停止linux脚本命令行?

      停止linux脚本命令行?,状态,电脑,命令,传播,检测,终端,模式,指令,文件,进程,l

      linux执行命令脚本?

      linux执行命令脚本?,代码,工作,底部,系统,状态,命令,脚本,暂停,情况,文件,lin

      linux重启脚本命令?

      linux重启脚本命令?,系统,代码,脚本,软件,周期性,百分比,时间,检测,服务,状

      linux登陆网站命令?

      linux登陆网站命令?,网络,工具,网站,标准,地址,软件,系统,命令,数据,环境,lin

      linux脚本编辑命令行?

      linux脚本编辑命令行?,系统,工作,命令,脚本,网上,设计,环境,业务,地址,时间,l