html5-canvas 创建响应式全页画布
示例
入门代码,用于创建和删除整页画布,该画布通过javascript响应调整大小事件。
var canvas; //全局画布参考
var ctx; //全局2D上下文参考
//创建一个画布
function createCanvas () {
const canvas = document.createElement("canvas");
canvas.style.position = "absolute"; //设定风格
canvas.style.left = "0px"; //位置在左上方
canvas.style.top = "0px";
canvas.style.zIndex = 1;
document.body.appendChild(canvas); //新增至文件
return canvas;
}
//调整画布大小。如果不存在,将创建一个画布
function sizeCanvas () {
if (canvas === undefined) { //检查全局画布参考
canvas = createCanvas(); //创建一个新的canvas元素
ctx = canvas.getContext("2d"); //获取2D上下文
}
canvas.width = innerWidth; //设置画布分辨率以填充页面
canvas.height= innerHeight;
}
//删除画布
function removeCanvas () {
if (canvas !== undefined) { //确保有东西要去除
removeEventListener("resize", sizeCanvas); //删除大小调整事件
document.body.removeChild(canvas); //从DOM中删除画布
ctx = undefined; //取消引用上下文
canvas = undefined; //取消引用画布
}
}
//添加调整大小的侦听器
addEventListener("resize", sizeCanvas);
//调用sizeCanvas创建和设置画布分辨率
sizeCanvas();
//现在可以使用ctx和canvas。如果您不再需要画布,可以通过调用将其删除removeCanvas()
jsfiddle上的此示例演示