根据窗口的宽/高来调整<canvas>的大小并保持宽高比,可以通过以下步骤实现:
window.innerWidth
和window.innerHeight
属性来获取窗口的宽度和高度。aspectRatio
,可以使用以下公式计算宽度和高度:setAttribute
方法来设置<canvas>的宽度和高度属性。以下是一个示例代码:
<!DOCTYPE html>
<html>
<head>
<title>调整<canvas>大小并保持宽高比</title>
</head>
<body>
<canvas id="myCanvas"></canvas>
<script>
function resizeCanvas() {
var canvas = document.getElementById('myCanvas');
var aspectRatio = 16 / 9; // 假设宽高比为16:9
var windowWidth = window.innerWidth;
var windowHeight = window.innerHeight;
var canvasWidth, canvasHeight;
if (windowWidth < windowHeight) {
canvasWidth = windowWidth;
canvasHeight = windowWidth / aspectRatio;
} else {
canvasWidth = windowHeight * aspectRatio;
canvasHeight = windowHeight;
}
canvas.setAttribute('width', canvasWidth);
canvas.setAttribute('height', canvasHeight);
}
// 在窗口大小改变时调用resizeCanvas函数
window.addEventListener('resize', resizeCanvas);
// 页面加载完成后立即调用resizeCanvas函数
window.addEventListener('load', resizeCanvas);
</script>
</body>
</html>
这样,<canvas>元素的大小将根据窗口的宽/高进行调整,并保持宽高比为16:9。你可以根据实际需求修改aspectRatio
的值来适应不同的宽高比。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云