参考自
https://developer.mozilla.org/en/Canvas_tutorial
<canvas>是HTML5新增加的标签,提供一些简单的方法来完成基本绘图和动画效果,由于标准问题,<canvas>的浏览器支持还不好,至少IE是不支持的(最新的IE9没了解过...),已知支持<canvas>的浏览器有Firefox 1.5+,Opera 9,Safari,Chrome.
一 基础知识
<canvas id="tutorial" width="150" height="150"></canvas>
这是一个canvas的例子,很简单,你可以把它当成一个<img>标签,常用属性就id,width(默认300px),height(默认150px).
如果浏览器不支持canvas,你可以像下面这样:
<canvas id="stockGraph" width="150" height="150">
current stock price: $3.15 +0.15
</canvas>
<canvas id="clock" width="150" height="150">
<img src="images/clock.png" width="150" height="150" alt=""/>
</canvas>
PS:在Firefox中,<canvas .../>是容许的,而Safari不行,为了兼容,还是老老实实的<canvas>..</cavas>吧.
实际上canvas标签是提供一个区域来进行绘图,类似flash中的stage,java中的graphics(不知道比喻对不对,大家看了别骂),为了进行绘图,必须先获得canvas的context(不知道怎么翻译...内容?背景?英语不好,还是不翻译了-_-)
var canvas = document.getElementById('tutorial');
var ctx = canvas.getContext('2d');
以后几乎所有的操作都围绕着这个ctx啦.
大家估计都注意到那个2d了,现在canvas只能2d绘图,据说以后会加入3d功能(flash,sliverlight,javafx要发飙了...)
如果浏览器不支持canvas,最好再加上点判断,比如提醒使用者换个支持canvas的浏览器之类的
var canvas = document.getElementById('tutorial');
if (canvas.getContext){
var ctx = canvas.getContext('2d');
//绘图代码
} else {
//不支持canvas时的代码
}
下面是一个模板,mozilla官方的,我直接copy下来了,懒得自己敲了,嘿嘿...
<html>
<head>
<title>Canvas tutorial</title>
<script type="text/javascript">
function draw(){
var canvas = document.getElementById('tutorial');
if (canvas.getContext){
var ctx = canvas.getContext('2d');
}
}
</script>
<style type="text/css">
canvas { border: 1px solid black; }
</style>
</head>
<body onload="draw();">
<canvas id="tutorial" width="150" height="150"></canvas>
</body>
</html>
以后的例子都基于这个模板,比如下面这个:
function draw() {
var canvas = document.getElementById("canvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect (10, 10, 55, 50);
ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
ctx.fillRect (30, 30, 55, 50);
}
}
效果如下:
分享到:
相关推荐
这篇“HTML5 Canvas学习笔记(1)处理鼠标事件”着重讲解了如何利用Canvas API来监听和响应鼠标的点击、移动等事件。 Canvas API提供了几个关键的方法来处理鼠标事件,包括`addEventListener`用于绑定事件处理函数,`...
canvas基础教程案例笔记 Canvas: 这是画布标签。 ctx: 画笔 在JS中通过元素.getContext("2d") 获取画笔 坐标系: 普通元素有一个定位坐标系 canvas的坐标系叫做绘图坐标系。 ctx可以认为就是坐标系。 坐标系的原点...
通过学习这篇笔记,我们可以深入了解Canvas的基本用法以及如何将它应用于游戏开发。 首先,Canvas是HTML5的一个核心特性,通过`<canvas>`标签在网页中定义一个画布。在JavaScript中,我们可以通过这个标签获取到一...
在本篇"HTML5 Canvas学习笔记(4)游戏界面的淡入淡出"中,我们将深入探讨如何利用Canvas来创建游戏界面的淡入淡出效果,这是一个增强用户体验的重要技巧,尤其在游戏加载、场景切换或过渡效果中。 首先,淡入淡出...
1. 初始化画布:设置Canvas的宽度和高度,通常与游戏面板的大小一致,以保证图形比例正确。 2. 清除画布:每次方块移动或旋转后,需要清除画布上的旧图形,这可以通过`clearRect()`方法完成,清除整个画布或特定...
在“HTML5 Canvas学习笔记(3)加载游戏/动画音乐”这个主题中,我们将深入探讨如何利用Canvas API来加载和播放音频资源,这对于创建交互式游戏和动画至关重要。 1. HTML5 Audio API HTML5提供了Audio元素,它是网页...
1. **Canvas基本概念**:Canvas是一个基于矢量图形的二维画布,通过JavaScript API进行操作。它由`<canvas>`标签定义,可以通过`context`对象来执行绘图命令。 2. **绘图上下文**:`CanvasRenderingContext2D`是...
在“HTML5 Canvas学习笔记(6)拼图游戏(数字版)”这篇博文中,作者分享了如何利用Canvas构建一个数字拼图游戏。下面我们将详细探讨这个知识点。 1. **HTML5 Canvas基础**: - Canvas是一个基于矢量图形的画布元素...
本文的学习笔记重点讲述了`canvas`元素的画板尺寸与实际显示尺寸之间的关系。 首先,我们要了解`canvas`元素的尺寸是由其`width`和`height`属性直接指定的。这些属性定义了画布的像素尺寸,也就是画布的内部分辨率...
由于HTML5中的Canvas是一个新的元素,那些不支持HTML5的旧浏览器无法识别`<canvas>`标签。当它们遇到一个不认识的标签时,会尝试将其作为普通文本处理,从而抛出异常。通过捕捉这种异常,我们就可以判断出浏览器是否...
结合"jquery插件"的标签,可能还包含了一些自定义的jQuery扩展,用于增强Canvas的文字处理功能。 jQuery特效标签暗示了代码中可能包含了一些视觉上的动态效果。在Canvas上实现动画通常需要定时器(如`setInterval`...
在这个“canvas学习”的压缩包中,你将找到关于canvas的基本语法和学习笔记,这对于想要掌握这个技术的前端开发者来说是非常宝贵的资源。 1. **Canvas元素** - `canvas`标签是HTML5中的一个新元素,用于在网页上...
在本文中,我们将深入探讨如何使用原生JavaScript和HTML5的Canvas API来实现网页截图功能,并结合`<a>`标签实现在浏览器中下载截图。这是一个非常实用的技术,它可以帮助开发者在没有依赖任何第三方库的情况下创建...
`<canvas>`标签在HTML中定义了一个矩形区域,然后通过JavaScript的`document.createElement('canvas')`和`document.getElementById('canvas')`等方法获取到这个元素,并设置其宽高。接着,我们需要获取绘图上下文`...
`<canvas>`标签在网页中定义了一个画布,然后通过JavaScript的Canvas API,我们可以绘制线条、形状、图像,甚至复杂的动画。 在这个特效中,我们主要关注的是天空和云朵的动画效果。开发者可能使用了`clearRect()`...
1. **定义粒子类**:创建一个Particle类,包含粒子的位置、速度、大小、颜色等属性,并实现粒子的行为,如更新位置、绘制到画布上等方法。 2. **初始化粒子数组**:根据需要生成一定数量的粒子对象,将它们存储在一...
1. **HTML基础**:HTML(HyperText Markup Language)是创建网页的标准标记语言,韩顺平的笔记会介绍基本的标签语法,如`<html>`、`<head>`、`<body>`,以及如何使用`<p>`、`<a>`、`<img>`等元素构建网页内容。...
此外,HTML5是HTML的最新版本,引入了许多新的标签和功能,比如`<video>`和`<audio>`用于多媒体播放,`<canvas>`用于图形绘制,`<form>`中的新表单控件如`<input type="date">`等,这些都可能在笔记中有所涉及。...
1. **HTML5 Canvas**: Canvas API提供了一组绘图命令,允许开发者在2D画布上绘制图形,包括线条、曲线、矩形、圆形等。在这个案例中,半圆环的形状就是通过Canvas API的`arc()`方法来绘制的。 2. **动画原理**:...
标签中的"jquery插件"可能意味着这个代码中还包含了一个jQuery插件,这是为了方便复用和扩展而封装的功能模块。jQuery插件通常包含一个初始化函数,可以通过`$.fn.extend()`添加到jQuery的对象上,使得我们可以通过...