You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置HTML Canvas前景色与背景色?我的实现为何不符合预期

问题解决:Canvas背景与矩形绘制错误

你犯了两个关键错误:

1. 误用了错误的尺寸属性

Canvas元素没有innerWidth和innerHeight属性——这俩是window对象的专属属性,用来获取浏览器视口尺寸。你之前的代码里,myCanvas.innerWidth和myCanvas.innerHeight实际返回undefined,Canvas会把这个值解析为0,导致黑色背景矩形根本没被绘制出来。

正确的做法是用Canvas元素自身的width和height属性,这两个值就是你设置的绘图区域实际尺寸(200x100)。

2. 白色矩形的尺寸计算错误

你想要四周留20px的边距,白色矩形的宽度应该是总宽度减去左右各20px(即200-40=160),高度同理是100-40=60。之前只减20的话,右边和下边的边距会是0,矩形会撑满到画布边缘。


修正后的完整JS代码

$('<canvas>')
  .attr('id', 'theCanvas')
  .attr('width', 200)
  .attr('height', 100)
  .appendTo('#main');

const myCanvas = document.getElementById('theCanvas');
const ctx = myCanvas.getContext('2d');

// 绘制黑色背景
ctx.fillStyle = "rgba(0,0,0,1)";
ctx.fillRect(0, 0, myCanvas.width, myCanvas.height);

// 绘制带20px边距的白色矩形
ctx.fillStyle = "rgba(255,255,255,1)";
ctx.fillRect(20, 20, myCanvas.width - 40, myCanvas.height - 40);

内容的提问来源于stack exchange,提问作者7 Reeds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:05:28