欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三、初识Canvas---绘制文本/擦除canvas/使canvas填满浏览器窗口

程序员文章站 2022-05-30 19:43:14
...

绘制文本/擦除canvas/使canvas填满浏览器窗口

1、绘制文本

context.fillText(文本名称,文本左下角x坐标,文本左下角y坐标)
除非有充分的理由不使用普通的HTML元素,否则一定不要在canvas中创建文本。
相反,应该使用普通的HTML元素创建文本,然后使用CSS定位到canvas之上。关键是使用HTML来处理文本内容,而使用canvas来处理像素和图形。

$(document).ready(function () {
            var canvas = $("#myCanvas");
            //jquery对象转化为DOM对象 之后才能get
            var context = canvas.get(0).getContext("2d");

            var text = "嘻嘻嘻嘻西";
            context.font = "50px serif"; //设置字号和字体
            context.fillText(text, 300, 300); //默认文本10px
            // context.font = "italic 50px serif"; //设置为斜体
            //context.fillText(文本名称,文本左下角x坐标,文本左下角y坐标)

            var text = "嘻嘻嘻嘻西";
            // context.font = "50px serif"; //设置字号和字体
            context.font = "italic 100px serif"; //设置为斜体
            context.lineWidth = 5; //加粗
            context.strokeStyle = "green"; //设置字体边框颜色
            context.strokeText(text, 100, 100); //默认文本10px
        });

三、初识Canvas---绘制文本/擦除canvas/使canvas填满浏览器窗口

2、擦除canvas

擦除正方形:
context.clearRect(该元左上角x坐标,该元左上角y坐标,清除的宽度,清除的高度);
擦除圆形:
context.clearRect(圆心x坐标-半径长度(元素左上角x坐标),圆心y坐标-半径长度(元素左上角y坐标),直径,直径)
擦除全部:
context.clearRect(0, 0, 500, 500); //500,500是自己设置画布的宽和高
context.clearRect(0, 0, canvas.width(), canvas.height());

            //擦除矩形
            //context.fillRect(x坐标,y坐标,宽度,高度)
            context.fillStyle = "red";
            context.fillRect(300, 40, 100, 100);
            //context.clearRect(该元左上角x坐标,该元左上角y坐标,清除的宽度,清除的高度);
            context.clearRect(300, 40, 100, 100); //清除正方形

            //擦除圆形
            context.beginPath();
            context.arc(230, 90, 50, 0, Math.PI * 2, false);
            context.closePath();
            context.fill();
            // context.clearRect(圆心x坐标-半径长度(元素左上角x坐标),圆心y坐标-半径长度(元素左上角y坐标),直径,直径)
            context.clearRect(180, 40, 100, 100); //清除圆形

            context.clearRect(0, 0, 500, 500); //500,500是自己设置的宽和高
            context.clearRect(0, 0, canvas.width(), canvas.height());
            //清除画布中所有内容

3、使canvas填满浏览器窗口

注意:

  • 解决canvas元素和浏览器窗口旁边会有一个白色空隙的问题,要在css文件中清除默认样式。
* {
    margin: 0;
    padding: 0;
}

html,
body {
    height: 100%;
    width: 100%;
}
canvas {
    display: block;
    /* 这样能设置高度和宽度 不会出现滚动条 */
}
  • 需要调整浏览器窗口大小的同时调整canvas元素的大小:
    $(window).resize(resizeCanvas);
    同时封装调整窗口大小的resizeCanvas()函数,每当浏览器窗口大小发生变化时,就调用resizeCanvas()函数。
    js完整代码:
$(document).ready(function () {
     var canvas = $("#myCanvas");
     //jquery对象转化为DOM对象 之后才能get
     var context = canvas.get(0).getContext("2d");
         $(window).resize(resizeCanvas); //调整浏览器窗口大小的时候调整canvas元素的大小
         resizeCanvas();
         function resizeCanvas() {
            canvas.attr("width", $(window).get(0).innerWidth);
            canvas.attr("height", $(window).get(0).innerHeight);
            context.fillRect(0, 0, canvas.width(), canvas.height());
         }
});
相关标签: canvas html js