`

Html5-Canvas使用方法

阅读更多

原文参见:http://www.html5.jp/canvas/how.html

 

本文介绍Canvas使用时的准备和简单的使用方法。

 

1. 下载ExplorerCanvas

因为IE不支持Canvas,所以需要下载Google提供的ExplorerCanvas JS类库。

到2009/03/24是为止,ExplorerCanvas的最新版本是Release3。下载excanvas_r3.zip之后,进行解压,会看到excanvas.js文件,实际使用的时候用到的就是这个文件。把这个文件放置到与需要使用Canvas的Html文件相同的路径下。

 

2. Html的准备

在使用Canvas的html文件中,给head元素中添加script元素来加载excanvas.js文件。然后,在想使用canvas画图的地方添加Canvas元素。

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="ja" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <title>Canvas</title>
    <!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]-->
  </head>
  <body>
    <h1>Canvas</h1>
    <canvas id="canvassample" width="140" height="140"></canvas>
  </body>
</html>

 

script标签被<!--[if IE]>...<![endif]-->包围着,这样只有IE认识,其他浏览器都相当于注释掉了。因为对于IE之外的浏览器,excanvas.js是不起作用的,所以为了防止多余的文件下载,这也是一个不错的方法。如果不用这种方法,通过script标签即使下载了excanvas.js,对于IE之外的浏览器也不会有问题。

然后,在想画图的地方,添加canvas标签,canvas是Html5新规定的标签。这个标签使用到的属性只包含,表示框区间的width和height属性。这两个属性都不是必须的,如果没有指定它们,就使用不同浏览器的默认值。Firefox的默认值是300*150。

 

3. JavaScript框架

Canvas使用JS进行画图,下面的例子画了一个正方形。让我们通过这个例子来看看Canvas的使用方法。


onload = function() {
  draw();
};
function draw() {
  /* canvas标签的节点对象 */
  var canvas = document.getElementById('canvassample');
  if ( ! canvas || ! canvas.getContext ) {
    return false;
  }
  /* 2D上下文 */
  var ctx = canvas.getContext('2d');
  /* 华正方形 */
  ctx.beginPath();
  ctx.moveTo(20, 20);
  ctx.lineTo(120, 20);
  ctx.lineTo(120, 120);
  ctx.lineTo(20, 120);
  ctx.closePath();
  ctx.stroke();
}

 

首先拿到canvas标签的节点对象,这里使用的是Dom的getElementById方法,当然也可以使用getElementByTagName。

拿到canvas标签的节点对象后,必须进行检查。在这个例子当中,如果canvas对象不存在或者没有getContext方法的时候,也就是不支持canvas的浏览器,就不进行任何处理。

getContext方法是Html5针对canvas定义的Dom新方法中的一个。对于IE浏览器,通过excanvas.js,getContext方法也定义好了。

getContext方法只接受参数“2D”,将来或许会支持"3D",现在只支持“2D”。将通过getContext方法取得的2D上下文对象赋给ctx对象,然后,在画图的时候,就通过ctx对象进行方法调用。

那么,下面,就看看实际画图的方法:

 

  1. 开始划线:ctx.beginPath();
  2. 指定线的起点:ctx.moveTo(20, 20);
  3. 指定线的终点:ctx.lineTo(120, 20);
  4. 指定线的终点:ctx.lineTo(120, 120);
  5. 指定线的终点:ctx.lineTo(20, 120);
  6. 关闭画下的线:ctx.closePath();
  7. 通过线将画出的图形描画出来:ctx.stroke();

就像这样,如果想要划线的时候,就可以重复上面的步骤。

3~5. 步使用的lineTo方法,是从现在的坐标开始,到参数指定的坐标为止,画一条直线。

6. 步使用的closePath方法,是将画出的图形自动用直线进行闭合。当然可以使用ctx.lineTo(20, 20)来替换closePath(),不过通过closePath就不需要指定坐标的位置,代码也简单一些。

7. 步的stroke方法,是将画出的图像用线来描画出来。如果不调用这个方法,在浏览器上就看不到想画的图形。如果想以填充的方式画图的话,就用fill方法替换stroke方法。也就是ctx.fill()。

这个例子中,只使用了画直线的lineTo方法,另外还有画矩形的rect方法,弧形的arc方法,二次曲线的quadraticCurveTo方法,贝塞尔曲线的ezierCurveTo方法等等。详细请参见:Canvas参照

 

4. 坐标系

上个例子当中个,在moveTo方法,lineTo等方法中指定了坐标。Canvas的坐标起点是从Canvas标签的左上角开始计算的。<canvas width="400" height=“300”>的坐标系如下图所示:

以左上角为起点,向右为X轴,向下为Y轴。左上角的坐标为(0, 0),右下角的坐标为(400, 300)。

通过Canvas不仅可以划线,也有其它画各种图形的方法。下一节中,将会介绍另外利用canvas画图的另外几个方法。 >>描绘各种图形

 

  • 大小: 14.8 KB
  • 大小: 3.1 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五彩纸屑飘落动画特效.rar HTML5-Canvas五彩纸屑飘落动画特效.rar HTML5-Canvas...

    ec-canvas动态加载

    EC-Canvas是阿里云ECharts团队推出的一种专为移动端设计的绘图库,它基于HTML5的Canvas元素,用于在移动设备上展示丰富的数据可视化效果。EC-Canvas动态加载是其核心特性之一,允许开发者在运行时根据需要加载图表,...

    微信小程序 uni-app wxml-to-canvas 小程序内通过静态模板和样式绘制 canvas ,导出图片,可用于生成分

    总的来说,`微信小程序 uni-app wxml-to-canvas`提供了一种高效且灵活的方法,使得开发人员可以充分利用WXML和CSS的便利性来创建和维护复杂的canvas图形,进而提升微信小程序的用户体验和功能多样性。在实际开发中,...

    微信小程序ec-canvas

    在小程序的开发过程中,`ec-canvas` 是一个重要的组件,主要用于实现与HTML5 canvas类似的图形绘制功能。 在微信小程序中,`ec-canvas` 是一个特殊的画布组件,它能够提供丰富的图形绘制能力,如线条、形状、图像...

    html5-canvas-mouse-ink

    总的来说,"html5-canvas-mouse-ink"项目涵盖了HTML5 Canvas的基本绘图方法、事件监听、动画框架以及可能的高级技巧。通过学习和实践这个项目,开发者可以深入了解Canvas的潜力,并提升在Web前端开发中的动态图形...

    文字粒子效果html5-canvas-side-文字.rar

    总结来说,这个“文字粒子效果html5-canvas-side-文字.rar”项目展示了如何使用HTML5 Canvas API创建动态的文字粒子效果。通过学习这个项目,你可以掌握Canvas的基本绘图、粒子系统的设计以及如何结合文字来制作独特...

    vue-canvas-poster 海报合成

    在这个“vue-canvas-poster”项目中,我们将探讨如何结合Vue和Canvas来实现一个海报合成的功能。 首先,Vue组件是Vue.js的核心概念,它允许开发者将UI拆分成可复用的部分。在这个案例中,“vue-canvas-poster”可能...

    vue-sign-canvas-master.zip

    Vue-sign-canvas-master.zip是一个包含Vue.js组件的压缩包,专为实现电子签名功能而设计。这个组件基于HTML5的canvas元素,使得用户能够在PC和移动设备上进行手写签名,适用于各种需要签名确认的场景,如电子商务、...

    wxa-comp-canvas-drag-master.zip

    微信小程序canvas-drag组件是为了解决在微信小程序中对图片进行编辑的需求而设计的。这个组件基于canvas元素,提供了一种简单的方式让用户在小程序内部实现图片的拉伸、压缩和裁剪操作。通过这个组件,开发者可以...

    Html5-Canvas 贪吃蛇

    HTML5 Canvas 是一种在网页上绘制图形的API,它允许开发者通过JavaScript代码动态地画出各种形状、图像和动画。这个“Html5-Canvas 贪吃蛇”项目是利用HTML5的Canvas技术和jQuery库来实现的经典游戏——贪吃蛇。下面...

    前端开源库-map-canvas

    这个库利用HTML5的Canvas元素,结合JavaScript技术,让开发者能够轻松地创建交互式、自定义的地图应用。在现代网页开发中,地图的展示与交互是一个常见需求,Map-Canvas为此提供了便捷的解决方案。 1. **Canvas技术...

    html5-canvas-loader.rar

    这个"html5-canvas-loader.rar"文件很可能包含了一个使用HTML5 Canvas技术实现的加载器示例。让我们深入探讨HTML5 Canvas以及如何使用它来创建加载器。 HTML5 Canvas是一个基于矢量图形的画布元素,通过JavaScript ...

    html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar

    html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙黑洞炫酷粒子动画特效.rar html5-实现canvas宇宙...

    Html5-canvas-v2.zip

    这个"Html5-canvas-v2.zip"压缩包文件显然包含了一个关于HTML5 Canvas的连线题,旨在帮助学习者深入理解和掌握Canvas API的使用。 HTML5 Canvas是一个基于矢量图形的画布,通过JavaScript来操作。它提供了大量的...

    html5-Canvas

    html5-Canvas

    html5-canvas-web-图片涂鸦

    "html5-canvas-web-图片涂鸦"这个主题涉及到的知识点主要集中在如何利用HTML5的Canvas API来实现图片的涂鸦功能。 1. **Canvas API基础** HTML5的Canvas是一个基于矢量图形的画布,通过JavaScript来控制。它提供了...

    前端项目-apng-canvas.zip

    在描述中提到,“Library for displaying animated PNG files in browsers with canvas support”,这暗示了这个项目是一个JavaScript库,它利用HTML5的canvas元素来呈现APNG动画。HTML5 canvas是一个基于矢量图形的...

    html5-canvas-3d-earth-rotate.zip

    【标题】"html5-canvas-3d-earth-rotate.zip" 涉及的主要知识点是HTML5中的Canvas API以及3D地球旋转效果的实现。HTML5 Canvas是一个强大的绘图工具,允许开发者在网页上进行动态图形绘制,为网页带来了丰富的交互性...

    Html5-Canvas+JavaScript 绘图参考手册

    本手册提供Html5--Canvas标签绘图的完全参考; 其中包括标准函数,数据结构及样式枚举等元素的使用说明; 注明了Html5-Canvas中文教程、源码、样例的资源地址;以及函数参考的日文网站;但是本手册只做为开发人员参考...

Global site tag (gtag.js) - Google Analytics