如何用特定颜色填充整个canvas?
How to fill the whole canvas with specific color?
如何用一种颜色填充整个HTML5<canvas>
。
我看到了一些解决方案,例如 this 使用 CSS 更改背景颜色,但这不是一个好的解决方案,因为 canvas 保持透明,唯一改变的是它占据的 space 的颜色。
另一种方法是在 canvas 中创建带有颜色的东西,例如矩形 (see here),但它仍然没有用颜色填充整个 canvas (如果 canvas 比我们创建的形状大)。
有没有办法用特定颜色填充整个canvas?
是的,在 canvas 上填充纯色矩形,使用 canvas 本身的 height
和 width
:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
canvas{ border: 1px solid black; }
<canvas width=300 height=150 id="canvas">
let canvas = document.getElementById('canvas');
canvas.setAttribute('width', window.innerWidth);
canvas.setAttribute('height', window.innerHeight);
let ctx = canvas.getContext('2d');
//Draw Canvas Fill mode
ctx.fillStyle = 'blue';
ctx.fillRect(0,0,canvas.width, canvas.height);
* { margin: 0; padding: 0; box-sizing: border-box; }
body { overflow: hidden; }
<canvas id='canvas'></canvas>
您可以通过以下方式更改 canvas 的背景:
<head>
<style>
canvas {
background-color: blue;
}
</style>
</head>
你知道吗,有一个完整的 canvas 图形库。它被称为p5.js
您可以在 head 元素中添加一行并添加一个额外的 sketch.js 文件。
首先对您的 html 和正文标签执行此操作:
<html style="margin:0 ; padding:0">
<body style="margin:0 ; padding:0">
将此添加到您的头上:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.js"></script>
<script type="text/javascript" src="sketch.js"></script>
sketch.js 文件
function setup() {
createCanvas(windowWidth, windowHeight);
background(r, g, b);
}
如果你想显式做背景,你必须确定你在后面画[=17]上的当前元素=].
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// Add behind elements.
ctx.globalCompositeOperation = 'destination-over'
// Now draw!
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
我们不需要访问 canvas 上下文。
在纯 JS 中实现 你会得到 canvas.setAttribute('style', 'background-color:#00F8')
。但我的首选方法需要将 kabab-case 转换为 camelCase.
canvas.style.backgroundColor = '#00F8'
如何用一种颜色填充整个HTML5<canvas>
。
我看到了一些解决方案,例如 this 使用 CSS 更改背景颜色,但这不是一个好的解决方案,因为 canvas 保持透明,唯一改变的是它占据的 space 的颜色。
另一种方法是在 canvas 中创建带有颜色的东西,例如矩形 (see here),但它仍然没有用颜色填充整个 canvas (如果 canvas 比我们创建的形状大)。
有没有办法用特定颜色填充整个canvas?
是的,在 canvas 上填充纯色矩形,使用 canvas 本身的 height
和 width
:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
canvas{ border: 1px solid black; }
<canvas width=300 height=150 id="canvas">
let canvas = document.getElementById('canvas');
canvas.setAttribute('width', window.innerWidth);
canvas.setAttribute('height', window.innerHeight);
let ctx = canvas.getContext('2d');
//Draw Canvas Fill mode
ctx.fillStyle = 'blue';
ctx.fillRect(0,0,canvas.width, canvas.height);
* { margin: 0; padding: 0; box-sizing: border-box; }
body { overflow: hidden; }
<canvas id='canvas'></canvas>
您可以通过以下方式更改 canvas 的背景:
<head>
<style>
canvas {
background-color: blue;
}
</style>
</head>
你知道吗,有一个完整的 canvas 图形库。它被称为p5.js 您可以在 head 元素中添加一行并添加一个额外的 sketch.js 文件。
首先对您的 html 和正文标签执行此操作:
<html style="margin:0 ; padding:0">
<body style="margin:0 ; padding:0">
将此添加到您的头上:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.js"></script>
<script type="text/javascript" src="sketch.js"></script>
sketch.js 文件
function setup() {
createCanvas(windowWidth, windowHeight);
background(r, g, b);
}
如果你想显式做背景,你必须确定你在后面画[=17]上的当前元素=].
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// Add behind elements.
ctx.globalCompositeOperation = 'destination-over'
// Now draw!
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
我们不需要访问 canvas 上下文。
在纯 JS 中实现 canvas.setAttribute('style', 'background-color:#00F8')
。但我的首选方法需要将 kabab-case 转换为 camelCase.
canvas.style.backgroundColor = '#00F8'