二者有本质的区别

时间:2021-12-04 05:19:24

1. 在canvas标签中给出长宽(不带单位):<canvas></canvas>

 或者在js中设置长宽:canvas.width = 600; canvas.height = 600;

 注意:canvas是行内块元素,用CSS设置的width和height像素值是canvas在页面衬着出来的宽高,而用js设置或者在标签中直接给出的则是canvas的辨别率,二者有素质的区别。
    canvas元素的使用与普通的html元素并不不异,它有一个默认尺寸300*150,在css中设置宽高只能转变canvas的显示宽高,而并没有转变画布绘制时的尺寸,所以要为canvas设置绘制的尺寸,,必需写在元素标签上或用JS设置。

2. 浏览器兼容时,不会显示canvas标签内的内容;不兼容时才会显示。

  <canvas>您的浏览器不撑持canvas标签</canvas>

3. var canvas = document.getElementById("canvas"); // 获取canvas标签
    var context = canvas.getContext("2d"); // 获取2d上下文环境

    context.beginPath();//可以开始绘制

    context.moveTo(100,100); //画笔移动到(100,100);
    context.lineTo(150,200); //创建一条从(100,100)到(150,200)的路径
    context.fillStyle = "#ccc"; //填充颜色为#ccc
    context.strokeStyle = "#fff"; //进行描边
    context.lineWidth = 5;
    context.fill();//进行填充
    context.stroke();//进行描边

    context.closePath();//*当前路径 (基于状态)

    关于closePath():当当前路径不是关闭路径时,使用closePath会自动将当前路径的首尾连接起来

    context.fillRect(x,y,w,h);
    context.clearRect(50, 30, 110, 35); //断根画布上的内容

    (50,30)为矩形起点,110.35为矩形长宽

   想绘制多条不关闭路径图形,在每次绘制新路径时使用beginPath即可
4. 绘制弧线
 context.arc(x,y,r,startingAngle,endingAngle,anticlockwise = false);
   参数分袂为:圆心坐标,半径,起始角度,结束角度,时钟标的目的(false为顺时针、true为逆时针)
        三点钟标的目的为0pi,六点钟标的目的为0.5pi,九点钟为1.0pi,12点钟为1.5pi
   例如:context.arc(300,300,100,0,Math.PI*1.5,false);

5. 绘制矩形

 context.fillRect(x,y,w,h);
   context.strokeRect(50, 30, 110, 35)
   context.clearRect(50, 30, 110, 35); //断根画布上的内容

6. 绘制虚线

 context.setLineDash([a,b]);//a为虚线线段长度,b为虚线线段间隔长度

7. 取得canvas元素相对付浏览器窗口的位置

 element.getBoundingClientRect()要领返回元素的巨细及其相对付视口的位置

8. 绘制图片

 cvs.drawImage(image.x,y,width,height);
   context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);

   image可以是元素或是image东西,但不能是路径
   通报给 drawImage() 要领的图像必需是 Image 东西或 Canvas 元素