在使用 canvas 绘图时,我们可以通过控制画布的大小来实现画布缩放的效果。但是,如果我们希望画布能够自适应浏览器窗口大小的变化,就需要使用 JavaScript 来动态修改画布的大小。

下面是一种简单的实现方式:

  1. 获取 canvas 元素和其父容器元素。
var canvas = document.getElementById('myCanvas');
var container = document.getElementById('canvasContainer');
  1. 定义一个函数,用于动态修改画布的大小。
function resizeCanvas() {
  canvas.width = container.clientWidth;
  canvas.height = container.clientHeight;
}
  1. 在窗口大小发生变化时,调用 resizeCanvas 函数。
window.addEventListener('resize', resizeCanvas, false);

完整代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Canvas 自适应缩放</title>
  <style>
    #canvasContainer {
      width: 100%;
      height: 100%;
      overflow: hidden;
    }
  </style>
</head>
<body>
  <div id="canvasContainer">
    <canvas id="myCanvas"></canvas>
  </div>

  <script>
    var canvas = document.getElementById('myCanvas');
    var container = document.getElementById('canvasContainer');

    function resizeCanvas() {
      canvas.width = container.clientWidth;
      canvas.height = container.clientHeight;
    }

    window.addEventListener('resize', resizeCanvas, false);

    resizeCanvas(); // 初始化画布大小
  </script>
</body>
</html>

在上面的代码中,我们在 CSS 中将父容器元素 #canvasContainer 的宽度和高度设置为 100%,这样它就会占满整个浏览器窗口。同时,我们还将其 overflow 属性设置为 hidden,以避免画布大小超出容器的范围。

在 JavaScript 中,我们获取了 canvas 元素和其父容器元素,并定义了一个 resizeCanvas 函数,用于动态修改画布的大小。具体来说,我们在函数中通过 clientWidthclientHeight 属性获取父容器的宽度和高度,并将其赋值给 canvas 的 widthheight 属性。

最后,我们在窗口大小发生变化时,调用 resizeCanvas 函数,并在页面加载完成后立即调用一次,以确保画布的大小正确初始化

canvas 画布缩放自适应

原文地址: https://www.cveoy.top/t/topic/fF7K 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录