`
elementstorm
  • 浏览: 24558 次
  • 性别: Icon_minigender_1
  • 来自: 河南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Canvas标签笔记 (1)

阅读更多
参考自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);
   }
}


效果如下:

1
0
分享到:
评论

相关推荐

    HTML5 Canvas学习笔记(1)处理鼠标事件

    这篇“HTML5 Canvas学习笔记(1)处理鼠标事件”着重讲解了如何利用Canvas API来监听和响应鼠标的点击、移动等事件。 Canvas API提供了几个关键的方法来处理鼠标事件,包括`addEventListener`用于绑定事件处理函数,`...

    canvas案例笔记

    canvas基础教程案例笔记 Canvas: 这是画布标签。 ctx: 画笔 在JS中通过元素.getContext("2d") 获取画笔 坐标系: 普通元素有一个定位坐标系 canvas的坐标系叫做绘图坐标系。 ctx可以认为就是坐标系。 坐标系的原点...

    HTML5 Canvas学习笔记(5)游戏得分动画

    通过学习这篇笔记,我们可以深入了解Canvas的基本用法以及如何将它应用于游戏开发。 首先,Canvas是HTML5的一个核心特性,通过`&lt;canvas&gt;`标签在网页中定义一个画布。在JavaScript中,我们可以通过这个标签获取到一...

    HTML5 Canvas学习笔记(4)游戏界面的淡入淡出

    在本篇"HTML5 Canvas学习笔记(4)游戏界面的淡入淡出"中,我们将深入探讨如何利用Canvas来创建游戏界面的淡入淡出效果,这是一个增强用户体验的重要技巧,尤其在游戏加载、场景切换或过渡效果中。 首先,淡入淡出...

    HTML5 Canvas学习笔记(9)俄罗斯方块游戏之三(游戏面板)

    1. 初始化画布:设置Canvas的宽度和高度,通常与游戏面板的大小一致,以保证图形比例正确。 2. 清除画布:每次方块移动或旋转后,需要清除画布上的旧图形,这可以通过`clearRect()`方法完成,清除整个画布或特定...

    HTML5 Canvas学习笔记(3)加载游戏/动画音乐

    在“HTML5 Canvas学习笔记(3)加载游戏/动画音乐”这个主题中,我们将深入探讨如何利用Canvas API来加载和播放音频资源,这对于创建交互式游戏和动画至关重要。 1. HTML5 Audio API HTML5提供了Audio元素,它是网页...

    《HTML5 Canvas学习笔记(10)》数钱数到手抽筋

    1. **Canvas基本概念**:Canvas是一个基于矢量图形的二维画布,通过JavaScript API进行操作。它由`&lt;canvas&gt;`标签定义,可以通过`context`对象来执行绘图命令。 2. **绘图上下文**:`CanvasRenderingContext2D`是...

    HTML5 Canvas学习笔记(6)拼图游戏(数字版)

    在“HTML5 Canvas学习笔记(6)拼图游戏(数字版)”这篇博文中,作者分享了如何利用Canvas构建一个数字拼图游戏。下面我们将详细探讨这个知识点。 1. **HTML5 Canvas基础**: - Canvas是一个基于矢量图形的画布元素...

    html5中canvas学习笔记1-画板的尺寸与实际显示尺寸

    本文的学习笔记重点讲述了`canvas`元素的画板尺寸与实际显示尺寸之间的关系。 首先,我们要了解`canvas`元素的尺寸是由其`width`和`height`属性直接指定的。这些属性定义了画布的像素尺寸,也就是画布的内部分辨率...

    html5中canvas学习笔记2-判断浏览器是否支持canvas

    由于HTML5中的Canvas是一个新的元素,那些不支持HTML5的旧浏览器无法识别`&lt;canvas&gt;`标签。当它们遇到一个不认识的标签时,会尝试将其作为普通文本处理,从而抛出异常。通过捕捉这种异常,我们就可以判断出浏览器是否...

    html5 canvas米字格式手写文字练习代码.zip

    结合"jquery插件"的标签,可能还包含了一些自定义的jQuery扩展,用于增强Canvas的文字处理功能。 jQuery特效标签暗示了代码中可能包含了一些视觉上的动态效果。在Canvas上实现动画通常需要定时器(如`setInterval`...

    canvas学习

    在这个“canvas学习”的压缩包中,你将找到关于canvas的基本语法和学习笔记,这对于想要掌握这个技术的前端开发者来说是非常宝贵的资源。 1. **Canvas元素** - `canvas`标签是HTML5中的一个新元素,用于在网页上...

    原生js+canvas实现截图,实现a标签下载

    在本文中,我们将深入探讨如何使用原生JavaScript和HTML5的Canvas API来实现网页截图功能,并结合`&lt;a&gt;`标签实现在浏览器中下载截图。这是一个非常实用的技术,它可以帮助开发者在没有依赖任何第三方库的情况下创建...

    HTML5 canvas鼠标点击的粒子云特效

    `&lt;canvas&gt;`标签在HTML中定义了一个矩形区域,然后通过JavaScript的`document.createElement('canvas')`和`document.getElementById('canvas')`等方法获取到这个元素,并设置其宽高。接着,我们需要获取绘图上下文`...

    html5 canvas蓝天白云背景动画特效.zip

    `&lt;canvas&gt;`标签在网页中定义了一个画布,然后通过JavaScript的Canvas API,我们可以绘制线条、形状、图像,甚至复杂的动画。 在这个特效中,我们主要关注的是天空和云朵的动画效果。开发者可能使用了`clearRect()`...

    HTML5 Canvas不规则粒子动画.zip

    1. **定义粒子类**:创建一个Particle类,包含粒子的位置、速度、大小、颜色等属性,并实现粒子的行为,如更新位置、绘制到画布上等方法。 2. **初始化粒子数组**:根据需要生成一定数量的粒子对象,将它们存储在一...

    韩顺平 HTML网页 笔记

    1. **HTML基础**:HTML(HyperText Markup Language)是创建网页的标准标记语言,韩顺平的笔记会介绍基本的标签语法,如`&lt;html&gt;`、`&lt;head&gt;`、`&lt;body&gt;`,以及如何使用`&lt;p&gt;`、`&lt;a&gt;`、`&lt;img&gt;`等元素构建网页内容。...

    HTML 笔记.zip

    此外,HTML5是HTML的最新版本,引入了许多新的标签和功能,比如`&lt;video&gt;`和`&lt;audio&gt;`用于多媒体播放,`&lt;canvas&gt;`用于图形绘制,`&lt;form&gt;`中的新表单控件如`&lt;input type="date"&gt;`等,这些都可能在笔记中有所涉及。...

    Canvas半圆环进度条动画特效.zip

    1. **HTML5 Canvas**: Canvas API提供了一组绘图命令,允许开发者在2D画布上绘制图形,包括线条、曲线、矩形、圆形等。在这个案例中,半圆环的形状就是通过Canvas API的`arc()`方法来绘制的。 2. **动画原理**:...

    HTML5 Canvas扑克牌花式发牌动画特效.zip

    标签中的"jquery插件"可能意味着这个代码中还包含了一个jQuery插件,这是为了方便复用和扩展而封装的功能模块。jQuery插件通常包含一个初始化函数,可以通过`$.fn.extend()`添加到jQuery的对象上,使得我们可以通过...

Global site tag (gtag.js) - Google Analytics