修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 前端
  4. JavaScript
  5. 正文

JavaScript 之 canvas(一)

2019年9月6日 6108点热度 2人点赞 0条评论

认识canvas

<canvas>是一个HTML元素,可用于通过脚本(通常是JavaScript)绘制图形。

更多介绍,可以参考MDN的文档。

这个系列我希望写一个简单的画图功能,并不是很困难,但是基本功能都会有接触。先来看一下成品:

file

可以看到,涵盖了普通形状,箭头形状,橡皮,以及文字,就是一个简单而又不失功能的画板。

那么开始学习canvas吧。

一个简单的canvas页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JS - Canvas - Base</title>
</head>
<body>
    <canvas id="canvas" width="800" height="600" style="background-color: #fff">抱歉,您的浏览器不支持canvas元素</canvas>
</body>
</html>

在<body>中创建一个<canvas>的元素,也就是我们的canvas控件,这样就完成了创建。如果浏览器不支持canvas控件,那么会显示中间的文字。

这时页面上已经有控件了,但是我们什么都看不到,因为他本身并没有什么颜色。。。我们可以通过添加JS方法来绘图。

尝试添加如下代码:

var canvas = document.getElementById("canvas");

// 检测浏览器是否支持canvas 该方法是否存在 取得上下文对象
if (canvas.getContext) {
    var context = canvas.getContext("2d"); //2d用引用括起来
    if (canvas.getContext) {
        // 设置阴影,阴影需要在图形之前设置
        context.shadowOffsetX = 10;
        context.shadowOffsetY = 20;
        context.shadowBlur = 2;
        context.shadowColor = "yellow";

        context.fillStyle = "red"; // 填充颜色为红色
        context.fillRect(10, 10, 150, 150); //用指定的颜色填充矩形

        context.strokeStyle = "blue"; //描边颜色为蓝色
        context.lineWidth = 4; //指定描边线的宽度
        context.strokeRect(10, 10, 150, 150);   //用指定的颜色描边矩形
    }
}

打开页面,会发现已经有东西了:

file

可以看到,现在已经出现了画面。

这就是canvas的最基本用法。这里介绍了填充色,填充方法,描边色,描边方法,以及阴影的使用方法。不过最基本的,这一切都以var context = canvas.getContext("2d");为基础,这个context可以理解为一个画笔,我们所有的绘制都是用它来完成。

有了这样的基础,我们就可以开始进行真正的绘制了。

在下一篇中,将会介绍基本图形的绘制。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: canvas JavaScript
最后更新:2019年9月6日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

文章目录
  • 认识canvas
  • 一个简单的canvas页面
最新 热点 随机
最新 热点 随机
node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消 rgb 颜色小数兼容问题
JavaScript 之 canvas(二)-- 绘制基本图形 .net core 3.x 使用NLog输出日志到文件 利用 pinia 添加局部 store Navicat 12 安装与破解 css实现跳动的文字 IdentityServer4深入使用(一)-- 认证与授权(上)

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号