基于HTML5的图形化网页数据展示

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:yellow1989
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在HTML4的時代,如果要将各种数据图表在互联网上展示出来,办法并不多。HTML、CSS+Javascript的展示能力,不管是从性能还是功能方面来说,都十分有限。这个时候Flash出现了,顿时千树万树梨花开,互联网时代迎来了多媒体时代,数据展示组件基于Flash也是大放异彩。但是Flash由于效率问题,功耗较高,还有文件尺寸偏大,语言独立不易学的问题。今天,HTML5来了,让我来用HTML5的新增功能Canvas技术实现一个漂亮的饼图控件,来为大家介绍HTML5在图形化网页数据展示方面的优势。
  关键词:HTML5;数据展示;组件;Canvas;Javascript
  1 Canvas介绍
  HTML5中,对图形化网页数据展示影响最大的就要数Canvas了。本文接下来会对Canvas 2D模式进行介绍,并使用Canvas 2D实现一个饼状图的数据展示组件。在实现中,为节省篇幅,本文假设读者对Javascript和HTML都有一定的了解,将仅对Canvas相关部份进行重点讲解。
  在介绍Canvas 2D之前,让我们先找一个饼状图的组件,并以它作为我们实现的目标:
  百度搜到这个饼状图,看起来效果不错,我们来尝试实现它。
  2 实现思路与具体实现
  观察这个饼状图,最直观可以看到的就是它的黑色背景。我们要画饼状图,要先把它的背景画出来,那么如何在Canvas中画一个大大的黑色方框呢?首先我们必须在页面中有Canvas元素。即,之后,我们用js调用这个元素的getContext(“2d”)来获得2d的绘图上下文(注意2d的d必须是小写),之后我们就可以使用这个上下文来进行绘图了。在Canvas中,绘制矩形的方法是使用fillRect(x,y,w,h)方法,矩形的填充颜色使用fillStyle属性来设置。其中x,y是要绘制矩形的坐标,而w,h是要绘制矩形的宽度与高度。在Canvas的坐标系中,以Canvas元素的左上角为0,0,X轴向右延伸,Y轴向下延伸。所以要画一个400x400的矩形,代码如上。
  效果:
  成功!终于把背景完成了。下面我们来画饼,整个的饼图其实是由多个扇形组成的。在canvas的2d上下文中,画扇形的方式是使用“路径”功能,一个路径其实就是一个形状,想像一下有一个笔尖在画布上落下,这儿便是形状的起点,随着你的移动笔尖,线条就会出现在画布上,当你决定想完成这个形状的时候,从笔尖的当前位置,到形状的起点画一条直线,关闭形状区域,这个形状就画好了。在Canvas的绘图API中,并没有画圆的方法,只能画一定弧度的弧线,但我们可以画2π弧度的弧来画圆。Canvas画弧线的API如下:
  arc(x,y,r,a1,a2,b)
  其中:x,y为圆弧的圆心,r为圆弧半径,a1为起始弧度,a2为终止弧图,b为布尔值,代表画弧方向,b为true时代表逆时针画弧,b为false时代表顺时针画弧。Canvas画弧时以X轴正向(右方)为0度。
  在Canvas API中,开始一个新的形状路径的API是openPath(),闭合一个形状的API是closePath();移动画笔,不进行绘画的API是moveTo(x,y),x,y为要移动画笔的目的坐标。从画笔当前坐标画一条线到x,y的API为lineTo(x,y)。Canvas中填充画好的形状的API是fill(),使用的颜色仍然是fillStyle属性。了解了这些,跟据图3中我们的设计。很容易可以画出我们的第一个弧。按我们这个思路,如果我们要画一个圆心坐标在200,200,半径为100,角度为30度(π/6)的黄色扇形,代码如下:
  再看下效果:
  现在,我们即会画矩形,也会画扇形了,我们当然也可以用这些扇形拼成一个圆。那么为了实现饼状图控件,我们现在唯一缺少的Canvas技术就是文字的显示了。
  Canvas 2d上下文API中,和文字相关的内如有以下几个:
  fillStyle属性:代表要绘制的文字颜色
  font属性:要绘制的字体与字号。例值:”9px Arial”。字体为Arial,字号为9px
  textBaseline属性:要绘制的字体与指定坐标的位置关系,值与效果如下图:
  shadowColor属性:填充阴影颜色。
  shadowOffsetX属性:填充阴影X偏移。
  shadowOffsetY属性:填充阴影Y偏移。
  fillText方法:fillText(text,x,y)。text为要绘制的文字内容,x,y为要绘制的坐标。
  新增代码如下:
  效果:
  致此,完成一个饼图所需要的Canvas知识我们已经完全掌握了。控件封装的设计部份略过,直接帖一下这个饼图完成的最终效果:
  在完成稿里面,我们为了美观,对边缘做了虚化处理。这是怎么做的呢?其实,fillStyle并不是仅仅可以填写具体的颜色,fillStyle还可以赋值为一个暂变。我们通过设置渐变,让颜色填充在边缘时迅速由本色向背景色(黑色)渐变,即实现了这种效果。相关代码如下:
  最后把所有相关代码附上:
  ⑴HTML文件:
  ⑵JS文件(yfchart.js)
  按我们的灵活设计,其实要换肤的话也十分容易。yfchart.js完全不需要修改,只需要修改html中对饼图控件引用的部份代码即可。修改后代码如下(即去掉黑底皮肤定义部份):
  效果如下:
  3 总结与展望
  从以上介绍和实例可以看出,使用HTML5做数据展示非常简单。只要短短的百行代码即可实现一个支持皮肤换肤和任意数据内容的饼图控件。并且效果也是比较好的。实际上,HTML5可以做的远远不止于此。在数据展示方面,HTML5对现代设备支持的非常好,比如触摸屏,蛇螺仪等等,使用这些功能,我们可以做出用手指和图表交互的功能,也可以做出一个3维的数据世界,你拿着支持HTML5的移动设备,就像拿着一扇窗户一样,随着设备的移动,通过屏幕看到的数据也是不同的。这些都是HTML5可以做到的神奇功能。除此之外,HTML5的本地存储,Web worker等功能甚至允许我们在前端做一些数据的统计和计算工作,而不是简单的什么都交给后台。
  按HTML5的现状来看,使用HTML5做数据展示已经完全可以做的比Flash更好,且功能会比Flash更加强大。希望可以通过这篇文章让更多的人关注HTML5,使用HTML5,让我们的开发变的更简单,效果更好。
  [参考文献]
  [1]David Flanagan,著,淘宝前端团队,译.Javascript权威指南David Flanagan,Javascript:The Definitive Guide.
  [2]Nicholas C.Zakas著,曹力,张欣,等,译.Javascript高级程序设计. Nicholas C.Zakas,Professional Javascript for Web Developers.
  [3]秀野堂主,蒋宇捷,罗睿,编著.论道HTML5.Xiu Yetangzhu,Jiang Yujie,Luo Rui,The way to HTML5.
  [4]w3c.http://www.w3.org/TR/REC-html32.
  [5]w3c.http://www.w3.org/TR/REC-html40/.
其他文献
本文就无线网络系统面临的安全威胁,探讨了提升企业无线网络可靠性的技术策略。对坚固企业无线网络系统,令其发挥综合应用优势、优化可靠性、实用性,有积极有效的促进作用。
过程性评价是信息技术新课程所倡导的多元评价方式之一,其主要任务就是解决学生在学习过程中“如何学”以及“怎样一步步学”的问题,它关注的是学生在学习过程中怎样进行思考和
新课程强调学生的主体作用,重视课程资源在教学中的作用。信息技术课程资源的开发、整合和利用’让师生的原有知识、生活和经验融入了教学过程,激发了学生的学习积极性和主动性
2015年5月22-28日,2015年第1期(总第97期)全国地市级环保局长"新《环境保护法》与环境治理"专题培训班在江苏盐城举行,来自全国31个省、市、自治区及新疆生产建设兵团、辽河凌河
给出EMI电源滤波器用电感器的高频等放电路模型,并提出了一种获得磁芯材料性的参数分析方法,通过测量磁性磁芯电感器的插入损耗,进而得出材料的有效磁导率。对典型的罐形磁芯电
土壤侵蚀分布与土地利用类型分布之间存在密切关系,以我国水蚀区广东惠东区为例,以TM影像为主要数据源,在GIS环境下,进行土壤侵蚀与土地利用类型的矢量分析,通过SPSS软件包的统计
巴黎气候变化大会召开在际,国家气候变化专家委员会副主任、清华大学低碳经济研究院院长何建坤教授接受《世界环境》杂志采访,阐述中国应对气候变化战略、目标和行动,展望巴
2012年11月29日,“戴尔·激发无限”——戴尔中国高峰论坛在北京举行。戴尔公司向现场嘉宾展示了其全方位的企业解决方案并分享最新的行业趋势。超过300名行业专家和企业
ARM公司在美国加利福尼亚州圣何塞市硅谷举办的嵌入式系统大会上发布其Realview开发套件3.0版。通过这一发布,ARM为真正的硬件/软件共同开发创建了一个整合的端到端的工具链,并对
● 基于现代信息技术的教学组织策略的内涵解读  由于现代信息技术教学已成为教学的常态,因此给学科教学带来了划时代的变化。这种变化主要表现在教师的教学方式、学生的学习方式、教师和学生的互动方式以及教学内容的呈现、传递方式、评价方式等方面。而这些方式的有效改变,都离不开一个重要的环节,这就是教学组织。美国内华达大学的教育技术学教授麦德克斯在《交互网络:教育的未来和问题》一文中指出:“教育者仅仅考虑如何