JS页面动态绘图工具SVG,Canvas,VML介简介

 更新时间:2020年10月16日 16:24:05   作者:cuisuqiang  
这篇文章主要介绍了JS页面动态绘图工具SVG,Canvas,VML介简介,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

说到绘图、报表之类的技术,大家首先想到的就是Flex,当然也有许多了解javaapplet,对于这两种技术来说,各有利弊。
首先Flex很笨重,但是其效果实在让人喜欢。对于javaapplet来说,至少我在网络上很少看到,当然对于我们做开发的来说在我们的开发工具或者内部网络上还是有一些的。

其实现在Web上进行绘图的话还是有很多选择的,你可以到谷歌上搜索JS绘图,会有很多绘图工具提供给你使用,而且功能非常强大。比如说maxGraph,你可以到http://www.jgraph.com/mxgraph.html上去看一下效果。

如果你已经在网络上看了一会了我们可以继续来聊一下Web中JS绘图的内容。

工具插件满天飞,你也可以看到对于JS绘图的支持来说,JQuery和EXT都没有放松,特别是基于JQuery的插件不尽其数。
可是我要说的不是这些工具插件,我主要想说一下浏览器对于绘图的支持方面。也许你会发现,某些绘图插件并不能支持所有浏览器,这是怎么回事呢?

对于JS图形方面的支持,主要关注三个词:SVG,VML,CANVAS。

对于SVG

可缩放矢量图形(Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。2008年12月22日,SVG Tiny 1.2成为W3C的推荐标准,W3C目前正在研究制定SVG 1.2版本。

由于SVG文件可嵌入JavaScript(严格地说,应该是ECMAScript)脚本来控制SVG对象,所以在进行Web中JS绘图时算是考虑的一种。

但是,SVG还是面临一些问题的。SVG面临的主要问题一个是如何和已经占有重要市场份额的矢量图形格式Adobe Flash竞争的问题,另一个问题就是SVG的本地运行环境下的厂家支持程度。

浏览器支持情况:

对于浏览器支持方面,Mozilla Firefox自版本1.5发行后,即开始支援SVG格式的显示,Opera 8.0 版开始支援显示Tiny 1.1规格的SVG,Google Chrome和Safari支持SVG显示,Microsoft的Internet Explorer 8.0版之前尚未支援SVG,直至由Internet Explorer 9.0版开始支援SVG。也就是说,市场占有率最大的IE到目前为止才刚刚开始支持,就是说普通人使用的IE浏览器是不能使用的,而且对于支持程度来说,对SVG支持最好的浏览器是Opera,它支持大多数的SVG特性,其他浏览器不能支持一些属性。难道我们给客户说你必须安装Opera浏览器?

来看一个SVG的绘图效果:

对于Canvas

Canvas元素是HTML5的一部分,允许脚本动态渲染位图像。最初由苹果公司内部使用,后来才有人组建议为下一代的网络技术使用该元素。
对于该元素,首先来说的就是浏览器支持方面。Firefox,Safari和Opera9都支持canvas tag,canvas用来绘制2D图形。但是IE不支持canvas。Google就开发了excanvas,模拟canvas在其他浏览器的状态。
excanvas目前版本为excanvas_r3,还有许多Bug,另外在IE上使用效率绝对是个问题,因为excanvas其实是使用IE中VML来实现canvas效果的。

看一下Demo中绘图效果:

对于VML

VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。但是VML只是被IE支持。

来看一个VML的绘图效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JS实现随机抽选获奖者

    JS实现随机抽选获奖者

    这篇文章主要介绍了JS实现随机抽选获奖者,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • uniapp内置组件scroll-view案例详解(完整代码)

    uniapp内置组件scroll-view案例详解(完整代码)

    这篇文章主要介绍了uniapp内置组件scroll-view案例详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • JS二级菜单不同实现方法分析【4种方法】

    JS二级菜单不同实现方法分析【4种方法】

    这篇文章主要介绍了JS二级菜单不同实现方法,结合实例形式分析了4种不同的二级下拉菜单实现方法,需要的朋友可以参考下
    2018-12-12
  • PHP+jQuery+Ajax+Mysql如何实现发表心情功能

    PHP+jQuery+Ajax+Mysql如何实现发表心情功能

    这篇文章通过php+jquery+ajax+mysql相结合,实现当用户浏览网站文章或者是论坛帖子后,想表达自己浏览后的心情,发表自己的感受,很多网站都提供了用户发表心情的功能,通过此功能可以很直观的分析文章或者是论坛对浏览者的用户体验度
    2015-08-08
  • js实现div在页面拖动效果

    js实现div在页面拖动效果

    这篇文章主要介绍了js实现div在页面拖动效果,涉及JavaScript动态操作页面元素与数值计算的相关技巧,需要的朋友可以参考下
    2016-05-05
  • JS实现网站吸顶条

    JS实现网站吸顶条

    这篇文章主要为大家详细介绍了JS制作网站吸顶条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)

    Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)

    这篇文章主要介绍了Iphone手机、安卓手机浏览器控制默认缩放大小的方法,通过meta标签中添加属性代码展示控制浏览器的默认缩放,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。
    2017-08-08
  • js自定义Tab选项卡效果

    js自定义Tab选项卡效果

    这篇文章主要为大家详细介绍了js自定义Tab选项卡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解webpack运行Babel教程

    详解webpack运行Babel教程

    这篇文章主要介绍了详解webpack运行Babel教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • jquery实现的图片点击滚动效果

    jquery实现的图片点击滚动效果

    这篇文章主要介绍了jquery实现的图片点击滚动效果,需要的朋友可以参考下
    2014-04-04

最新评论