canvas元素的基础知识

175 阅读2分钟
微信图片_20200605134409.jpg
微信图片_20200605134409.jpg

在Web页面使用canvas元素很简单,只需要使用canvas标签即可。因为canvas本身不提供绘制能力,这部分工作委托给了JavaScript,所以需要给元素一个id方便后续获取对象。width和height属性告诉浏览器可绘制图形区域的大小(范围)。

<canvas id="myCanvas" width="300" height="300"></canvas>

通过getElementById函数找到canvas元素,然后初始化上下文,之后可以使用上下文API绘制各种图形。下面的脚本可以在Canvas中绘制一个矩形:

var elem = document.getElementByIdx_x('myCanvas');
if (elem && elem.getContext) {
  var context = elem.getContext('2d');
  if (context) {
    context.fillRect(0, 0, 150, 100);
  }
}

在上面的例子中,我们展示了绘制矩形是多么简单,而通过fillStyle和strokeStyle属性可以更轻松的设置矩形的填充和线条。

通过fillRect可以绘制带填充的矩形(方法执行完成后。立即对当前矩形进行fill填充。);使用strokeRect可以绘制只有边框没有填充的矩形(此方法绘制完路径后立即进行stroke绘制)。如果想清除部分Canvas可以使用clearRect。上述三个方法的参数相同:x, y, width, height。x, y是矩形左上角坐标, width和height都是以像素计。
下面将是一个综合实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>填充矩形</title>
</head>
<body>
<div id="container">
    <canvas id="cavsElem">
        你的浏览器不支持canvas,请升级浏览器
    </canvas>
</div>
<script>
    (function(){
        var canvas = document.getElementById('cavsElem');
        var ctx = canvas.getContext('2d');
        canvas.width = 600;
        canvas.height = 600;
        canvas.style.border = '1px solid red';

        ctx.lineWidth = 12;
        //绘制矩形ctx.rect(x,y,w,h);
        //前两个参数表示矩形左上角的点的x,y坐标,w,h表示矩形的宽高。
        ctx.rect(100,50,100,100);
        ctx.strokeStyle = 'red';
        ctx.stroke();
        ctx.fillStyle = 'yellow';
        ctx.fill();

        //描边矩形,是一个空心矩形,不会被填充
        ctx.strokeStyle = 'green';
        ctx.strokeRect(100,200,200,100);
        //ctx.fill();不起作用

        //填充矩形,默认填充黑色
        ctx.beginPath();
        ctx.fillStyle = 'pink';
        ctx.fillRect(100,350,300,200);
    })();
</script>
</body>
</html>

效果图:


38874ddd9dcc01fb3472e30a599a8fa.png
38874ddd9dcc01fb3472e30a599a8fa.png
喜欢可关注公众号“十斤代码”
公众号.jpg
公众号.jpg
回复“领取前端电子书”可免费领取知识哦~~
前端电子书.png