最近在一个日文网站上看到一篇不错的关于Canvas的文章,试着翻译一下,顺便也学习学习。
原文参见:http://www.html5.jp/canvas/what.html
本文介绍Canvas是什么,用Canvas可以做什么。
1. Canvas是什么?
所谓Canvas,就是为了在浏览器上画图而制定出来的方法。
到目前为止,如果想在Html上表示图的话,需要使用GIF,JPEG等图片。另外,为了实现让图片根据条件进行变化,模拟动画等目的,需要使用Flash,Java applet等方式。
而通过Canvas,就可以直接使用Javascrip画图,而不通过Flash,Java applet等插件。
实事上,我试着通过Canvas画了一个饼图,上图就是在Firefox2.0上的显示效果的截图。通过Canvas画出来的就是带颜色的那部分。Inernet Exploer 6以上, 如果是FireFox 1.5以上,Opera 9以上,Safari 1.3以上的话,Canvas画出来的实际效果可以参见下面的链接
[使用Canvas画饼图的实例]
2.Canvas的成长历程
Canvas最初发源于苹果公司,当时,Mac OS和Dashboard使用该种技术方法。之后,通过Apple,Mozilla Foundation,和Opera Software等浏览器厂商共同建立的WHATWG组织的规定,采用了Web Applications的名称。现在,W3C正在着手把Web Applications命名为Html5,作为下一代Html的标准。
虽然Html5还在制定当中,也没有支持的浏览器,但是,对于Canvas而言,Safari 1.3以上,Opera 9以上, Firefox 1.5以上都已经支持了。
3. Internet Exploer的情况
或许因为Microsoft没有参见WHATWG,市场占有率最高的IE并不支持Canvas。因此,Canvas的实际使用就受到了阻碍。不过,通过使用Google公开的ExplorerCanvas Javascript库,情形就改变了。
ExplorerCanvas是在IE上模拟Canvas的Javascript库。只需要在Html中通过Script标签把ExplorerCanvas的js文件引入之后就可以使用了。这样,Canvas相关的javascript就可以在IE上执行了,如同和Safari,Firefox,Opera一样。虽然也有一部分不能完全的模拟,除非是一些特定的处理,就不需要在javascript代码当中,为IE和其他浏览器写不同的代码。
ExplorerCanvas可以运行在IE6以上,如果使用ExplorerCanvas,就可以通过Canvas画图并且显示给网页的访问者了。
4.Canvas的实例
这里介绍几个使用Canvas的实例。这里介绍的实例,有的包含很复杂的处理逻辑。虽然有的实例感觉使用Flash实现起来比较好,但是作为参考,我们可以看到通过Canvas和Javascript的组合使用,居然可以实现这样的效果。首先来看看Mozilla developer center的Canvas例子。当然,浏览的时候,当然需要使用Firefox 1.5以上的版本。
MDC - Canvas 实例
刚开始看这个实例集中的[A Basic RayCaster]时候,估计会惊叹通过Canvas竟然能做到这种地步,通过键盘的操作来移动虚拟的空间,A键左转,D键右转,W键前进,S键后退。
Pizzles using Canvas是使用Canvas做的一个猜谜游戏。通过点击页面上刊登的照片,把照片分成若干碎片。再使用鼠标一个一个的移动碎片,恢复原先的照片。可以作为一个使用Canvas的拼图参考。
Canvascape - "3D Walker"
最后介绍的是这个3D Walker。这是刚才介绍的MDC的[A Basic RayCaster]升级版。通过方向键移动,空格键跳跃。
5.Canvas可以做到的和不能做到的
通过Canvas,可以画线,圆等图形,并且可以给图形涂颜色,但是,画出来的图形不能移动。也就是说,Canvas没有模拟动画的方法。如果想实现动画的话,对于每个动作,都必须重新描绘真个图形。
另外,虽然Canvas在Html5的规定当中,有描绘文字的机能,但到目前为止,并没有支持这个功能的浏览器(FireFox有自己的方法可以进行文字描绘)。如果想要描绘文字,可以使用Dom而不是Canvas,生成包含文字的DIV元素,设定它的坐标,然后将它它和通过Canvas描绘出的图形重叠放置。
如上所述,只是用Canvas,不可能满足所有的需求。如果是复杂的图形描绘或者动画模拟的话,大多数会选择Flash,但是Canvas并不是Flash的代替品。应该在理解各自特性的基础上,根据情况进行选择。
下一篇当中,终于可以介绍到Canvas的具体使用方法了。
- 大小: 16.4 KB
分享到:
相关推荐
HTML5-Canvas点击泡沫横飞特效.rar HTML5-Canvas点击泡沫横飞特效.rar HTML5-Canvas点击泡沫横飞特效.rar HTML5-Canvas点击泡沫横飞特效.rar HTML5-Canvas点击泡沫横飞特效.rar HTML5-Canvas点击泡沫横飞特效.rar ...
HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas...
EC-Canvas是阿里云ECharts团队推出的一种专为移动端设计的绘图库,它基于HTML5的Canvas元素,用于在移动设备上展示丰富的数据可视化效果。EC-Canvas动态加载是其核心特性之一,允许开发者在运行时根据需要加载图表,...
【微信小程序 uni-app wxml-to-canvas】是一个用于在微信小程序中利用静态模板和样式来绘制canvas,并最终能够导出为图片的工具。这个技术在实际应用中特别适合用来生成分享图,即用户在社交平台上分享时看到的个性...
在小程序的开发过程中,`ec-canvas` 是一个重要的组件,主要用于实现与HTML5 canvas类似的图形绘制功能。 在微信小程序中,`ec-canvas` 是一个特殊的画布组件,它能够提供丰富的图形绘制能力,如线条、形状、图像...
"html5-canvas-mouse-ink"这个项目显然与Canvas有关,特别是涉及到了鼠标交互和动画效果,这通常是用来创建某种动态视觉效果,比如跟随鼠标移动的墨迹效果。 在HTML5 Canvas中,`<canvas>`元素是核心,它是画布,而...
在这个“vue-canvas-poster”项目中,我们将探讨如何结合Vue和Canvas来实现一个海报合成的功能。 首先,Vue组件是Vue.js的核心概念,它允许开发者将UI拆分成可复用的部分。在这个案例中,“vue-canvas-poster”可能...
在这个“文字粒子效果html5-canvas-side-文字.rar”压缩包中,包含的项目是一个利用Canvas API创建的文字粒子效果示例。这种效果常用于网站背景、动态头像、艺术字展示等,可以给用户带来视觉上的冲击力和趣味性。 ...
Vue-sign-canvas-master.zip是一个包含Vue.js组件的压缩包,专为实现电子签名功能而设计。这个组件基于HTML5的canvas元素,使得用户能够在PC和移动设备上进行手写签名,适用于各种需要签名确认的场景,如电子商务、...
在现代Web开发中,HTML5的Canvas API是一个强大的工具,它允许开发者在浏览器端进行动态图形绘制和处理。本文将深入探讨如何利用HTML5 Canvas实现图片的马赛克效果,这是许多网页应用、照片编辑器和游戏中的常见功能...
这个库利用HTML5的Canvas元素,结合JavaScript技术,让开发者能够轻松地创建交互式、自定义的地图应用。在现代网页开发中,地图的展示与交互是一个常见需求,Map-Canvas为此提供了便捷的解决方案。 1. **Canvas技术...
微信小程序canvas-drag组件是为了解决在微信小程序中对图片进行编辑的需求而设计的。这个组件基于canvas元素,提供了一种简单的方式让用户在小程序内部实现图片的拉伸、压缩和裁剪操作。通过这个组件,开发者可以...
html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙...
HTML5 Canvas 是一种在网页上绘制图形的API,它允许开发者通过JavaScript代码动态地画出各种形状、图像和动画。这个“Html5-Canvas 贪吃蛇”项目是利用HTML5的Canvas技术和jQuery库来实现的经典游戏——贪吃蛇。下面...
这个"html5-canvas-loader.rar"文件很可能包含了一个使用HTML5 Canvas技术实现的加载器示例。让我们深入探讨HTML5 Canvas以及如何使用它来创建加载器。 HTML5 Canvas是一个基于矢量图形的画布元素,通过JavaScript ...
html5-Canvas
这个"Html5-canvas-v2.zip"压缩包文件显然包含了一个关于HTML5 Canvas的连线题,旨在帮助学习者深入理解和掌握Canvas API的使用。 HTML5 Canvas是一个基于矢量图形的画布,通过JavaScript来操作。它提供了大量的...
"html5-canvas-web-图片涂鸦"这个主题涉及到的知识点主要集中在如何利用HTML5的Canvas API来实现图片的涂鸦功能。 1. **Canvas API基础** HTML5的Canvas是一个基于矢量图形的画布,通过JavaScript来控制。它提供了...
本手册提供Html5--Canvas标签绘图的完全参考; 其中包括标准函数,数据结构及样式枚举等元素的使用说明; 注明了Html5-Canvas中文教程、源码、样例的资源地址;以及函数参考的日文网站;但是本手册只做为开发人员参考...
在描述中提到,“Library for displaying animated PNG files in browsers with canvas support”,这暗示了这个项目是一个JavaScript库,它利用HTML5的canvas元素来呈现APNG动画。HTML5 canvas是一个基于矢量图形的...