<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: ;
padding: ;
}
html,body{
height: %;
overflow: hidden;
}
body{
background: pink;
}
#test{
background: gray;
position: absolute;
left: ;
top: ;
right: ;
bottom: ;
margin: auto;
}
</style>
</head>
<body>
<canvas id="test" width="" height="">
<span>您的浏览器不支持画布元素 请您换成萌萌的谷歌</span>
</canvas>
</body>
<script type="text/javascript">
window.onload=function(){
//querySelector身上有坑
//拿到画布
var canvas = document.querySelector("#test");
alert(canvas);
if(canvas.getContext){
var ctx = canvas.getContext("2d");
}
} </script>
</html>

canvas基础用法

1.什么是canvas(画布)
<canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形
例如,它可以用于绘制图形,创建动画。<canvas> 最早由Apple引入WebKit
我们可以使用<canvas>标签来定义一个canvas元素
----->使用<canvas>标签时,建议要成对出现,不要使用闭合的形式。
----->canvas元素默认具有高宽
width: 300px
height:150px

2.替换内容
<canvas>很容易定义一些替代内容。由于某些较老的浏览器(尤其是IE9之前的IE浏览器)
不支持HTML元素"canvas",
但在这些浏览器上你应该要给用户展示些替代内容。
这非常简单:我们只需要在<canvas>标签中提供替换内容就可以。
--->支持<canvas>的浏览器将会忽略在容器中包含的内容,并且只是正常渲染canvas。
--->不支持<canvas>的浏览器会显示代替内容

3.canvas标签的两个属性
<canvas> 看起来和 <img> 元素很相像,唯一的不同就是它并没有 src 和 alt 属性。
实际上,<canvas> 标签只有两个属性—— width和height。这些都是可选的。
当没有设置宽度和高度的时候,canvas会初始化宽度为300像素和高度为150像素。

画布的高宽
html属性设置width height时只影响画布本身不影画布内容
css属性设置width height时不但会影响画布本身的高宽,
还会使画布中的内容等比例缩放(缩放参照于画布默认的尺寸)

4.渲染上下文
<canvas> 元素只是创造了一个固定大小的画布,要想在它上面去绘制内容,
我们需要找到它的渲染上下文
<canvas> 元素有一个叫做 getContext() 的方法,这个方法是用来获得渲染上下文和它的绘画功能。
getContext()只有一个参数,上下文的格式
----->获取方式
var canvas = document.getElementById('box');
var ctx = canvas.getContext('2d');

----->检查支持性
var canvas = document.getElementById('tutorial');
if (canvas.getContext){
var ctx = canvas.getContext('2d');
}

最新文章

  1. JSON相关知识,转载:删除JSON中数组删除操作
  2. hashCode的作用
  3. 老王讲自制RPC框架.(一.前言与技术选型)
  4. java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  5. #if、#ifdef、#if defined之间的区别【转】
  6. ubuntu 12.04禁用笔记本触摸板
  7. Android动态设置android:drawableLeft|Right|Top|Bottom 并根据分辨率自适应
  8. java多线程之队列
  9. ZOJ 2563 Long Dominoes(状压DP)
  10. 关于.NET中的验证码
  11. poj1562--Oil Deposits
  12. 与众不同 windows phone (8) - Tile(磁贴)
  13. Go的pprof使用
  14. Fescar(Seata)-Springcloud流程分析-2阶段
  15. java数据结构和算法编程作业系列篇-数组
  16. 多线程数据库查询(ADO)
  17. solr安装教程
  18. update condition 字段报错
  19. 19. Remove Nth Node From End of List(移除倒数第N的结点, 快慢指针)
  20. 【转】Java中的String,StringBuilder,StringBuffer三者的区别

热门文章

  1. 10 个优秀的JavaScript开发框架
  2. Pandas分类数据和顺序数据转换为标志变量
  3. react 中刷新,路由传参数丢失不存在了?
  4. ubuntu16.04安装python虚拟环境
  5. Dubbo多注册中心和Zookeeper服务的迁移
  6. MJExtension常用方法
  7. json条件查询
  8. react css拓展 使用less
  9. leetcood学习笔记-67-二进制求和
  10. leetcood学习笔记-111-二叉树的最小深度