javascript - 适用于不同设备的响应式 Canvas

标签 javascript canvas responsive-design size width

我想将 Canvas 宽度设置为div宽度。 Canvas 容器的大小将根据浏览器宽度进行调整。

<div class="canvas-container" width=100% align="center">
    <canvas id="Canvas"></canvas>   
</div>

最佳答案

Use window.resize event and re-draw canvas elements on every resize event(In handler)

试试这个:

(function() {
  var canvas = document.getElementById('canvas'),
    context = canvas.getContext('2d');
  window.addEventListener('resize', resizeCanvas, false);

  function resizeCanvas() {
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    context.fillRect(10, 10, canvas.width - 20, canvas.height - 20);
  }
  resizeCanvas();
})();
* {
  margin: 0;
  padding: 0;
}
html,
body {
  width: 100%;
  height: 100%;
}
canvas {
  display: block;
  background: #eee;
}
<canvas id="canvas"></canvas>

关于javascript - 适用于不同设备的响应式 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35538535/

相关文章:

javascript - 为什么我可以引用一个尚未在 Javascript 中定义的变量?

JavaFX Canvas 高效动画

javascript 使用 while 在迭代之间有延迟的循环

javascript - 选项上的项目被选中

javascript - Recoil atom 的默认值可以是对象吗?

javascript - 在 Fabric.js 中将文本锁定到前面(不是每次都放在前面)

jquery - 使用 CSS 更改 <canvas> 颜色?

html - 编写媒体查询以根据屏幕尺寸有选择地加载图像

html - 如何在移动 View 中修复页脚?页脚在移动 View 中进入整个页面

html - 如何制作响应式马赛克 css 全屏宽度