canvas

<canvas id="canvas"></canvas>

js

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

ctx.fillStyle = 'green'; //颜色必须在画出来之前
ctx.fillRect(10, 10, 100, 100);

不建议用css控制canvas宽高,会等比缩放。852

CanvasRenderingContext2D.fillRect()
填充一个矩形
参数分别为x,y,width,height。

CanvasRenderingContext2D.strokeRect()
画出一个矩形边框。
参数分别为x,y,width,height。

CanvasRenderingContext2D.clearRect()
是 Canvas 2D API 设置指定矩形区域内(以 点 (x, y) 为起点,范围是(width, height) )所有像素变成透明,并擦除之前绘制的所有内容的方法。
clearRect(x, y, width, height)

CanvasRenderingContext2D.beginPath()
是 Canvas 2D API 通过清空子路径列表开始一个新路径的方法。 当你想创建一个新的路径时,调用此方法。

CanvasRenderingContext2D.moveTo()
是 Canvas 2D API 将一个新的子路径的起始点移动到(x,y)坐标的方法。
ctx.moveTo(x, y)

CanvasRenderingContext2D.lineTo()
是 Canvas 2D API 使用直线连接子路径的终点到x,y坐标的方法(并不会真正地绘制)。
ctx.lineTo(x, y);

CanvasRenderingContext2D.stroke()
是 Canvas 2D API 使用非零环绕规则,根据当前的画线样式,绘制当前或已经存在的路径的方法。

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.moveTo(50,50);
ctx.lineTo(200, 50);
ctx.stroke();

beginPath()开始 ,moveTo()移动画笔,lineTo()决定要从画笔现在位置连接到的坐标并移动到该坐标,
stroke()画出这条线。

image.png

CanvasRenderingContext2D.fill()
是 Canvas 2D API 根据当前的填充样式,填充当前或已存在的路径的方法。采取非零环绕或者奇偶环绕规则。

CanvasRenderingContext2D.fillStyle
ctx.fillStyle = color;
ctx.fillStyle = gradient;//填充渐变的对象CanvasRenderingContext2D.createLinearGradient(), CanvasRenderingContext2D.createRadialGradient()

ctx.fillStyle = pattern;//重复的对象

填充出一个三角形

ctx.beginPath();
ctx.moveTo(10,10);
ctx.lineTo(50,10);
ctx.lineTo(30,30);
ctx.fillStyle='red';
ctx.fill();
image.png

注意:当你调用fill()函数时,所有没有闭合的形状都会自动闭合,所以你不需要调用closePath()函数。但是调用stroke()时不会自动闭合。

CanvasRenderingContext2D.arc()
是 Canvas 2D API 绘制圆弧路径的方法。 圆弧路径的圆心在 (x, y) 位置,半径为 r ,根据anticlockwise (默认为顺时针)指定的方向从 startAngle 开始绘制,到 endAngle 结束。
ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise)
x 圆弧中心(圆心)的 x 轴坐标。
y 圆弧中心(圆心)的 y 轴坐标。
radius 圆弧的半径。
startAngle 圆弧的起始点, x轴方向开始计算,单位以弧度表示。
endAngle 圆弧的终点, 单位以弧度表示。
anticlockwise 可选的Boolean值 ,如果为 true,逆时针绘制圆弧,反之,顺时针绘制。

lineWidth = 宽度

移动端
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

手机不适合用mouse事件
改用touch事件
ontouchstart
ontouchmove
ontouchend

touch与mouse有些区别
touchEvent.touches[n]
touch事件可能有多个点同时被按

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,181评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,355评论 3 40
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 5,426评论 0 4
  • 一个阶段做一个阶段的事情 不要羡慕你这个阶段之外其他阶段的人 因为也许他们现在也在羡慕着你 而你羡慕的那个阶段不是...
    不良嗜好阅读 1,124评论 0 2
  • 记得那是06年,初中毕业的我,怀着满腔热血走入了那个期盼已久又有着一丝丝害怕的社会。 遇见她可能是意外,也许是...
    落叶似离别阅读 3,365评论 0 0