一、Hello Canvas

本篇将完成一个通用的canvas试验demo

完整代码

demo.html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Canvas</title>
    <style>
        body{
            background: #ddd;
        }
        #canvas{
            margin: 10px;
            padding: 10px;
            background: #fff;
            border: thin inset #aaaaaa;
        }
    </style>
</head>
<body>
    <canvas id="canvas" width="600" height="300">
        Canvas not supported
    </canvas>
</body>
<script src="example.js"></script>
</html>

example.js

var canvas = document.getElementById('canvas'),
        context = canvas.getContext('2d');
// 字体与大小
context.font = '38pt Arial';
// 填充样式 语法 color|gradient|pattern   颜色|渐变对象|pattern对象
context.fillStyle = "red"
// 笔触的颜色、渐变或模式
context.strokeStyle = 'blue';
// 绘制填充文字
context.fillText('Hello Canvas',canvas.width/2 - 150,canvas.height/2 + 15);
// 绘制文字
context.strokeText('Hello Canvas',canvas.width/2 - 150,canvas.height/2 + 15);
解析

1、对html来说,必须定义一个<canvas>标签来盛放画布编辑区域。值得注意的是,canvas的宽高最好如代码所示,直接在标签中定义,而不是写在css中,虽然很多情况下这两种写法的效果是一样的。但是写在css中实际改变的不是画布绘制区域,而是盒子区域,画布绘制区域跟随盒子进行了拉伸,所以在某些情况下可能出现效果变形。
标签中的 Canvas not supported 是只有浏览器不支持的情况下才会显示
2、

var canvas = document.getElementById('canvas'),
        context = canvas.getContext('2d');

这一部分代码定义了绘制环境。canvas仅仅是作为绘画对象的容器存在的,儿环境则提供了全部的绘画方法。也就是上面代码中的context,它就是一个2d绘图环境
canvas.getContext()这个方法返回的是一个CanvasRenderingContext2D对象,而2d也是目前唯一的合法值。3d绘图方式则需要研究webGL技术。
下面是CanvasRenderingContext2D对象方法和属性的参考链接
HTML Canvas 参考手册 (w3school.com.cn)

完成

完成效果

下一章会学习绘制一个时钟,来进一步熟悉canvas基础操作
另,本笔记所有演示都在chrome浏览器上展示

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容