javascript - 动态调整 Canvas 大小;保持图像的位置

标签 javascript html css html5-canvas

有没有办法创建与 <div> 尺寸相同的动态 Canvas ?它在。

我用 height: 100%, width: 100% 试过了在 Canvas 的CSS中。我的 Canvas 总是和 div 一样 bif BUT 它里面的内容可以缩放。

所以我想知道一种调整 Canvas 大小但保持图像准确位置的方法,例如即使我在移动设备上更改风景也是如此。

最佳答案

您想设置 Canvas 元素的宽度和高度属性,而不是仅拉伸(stretch) Canvas 的css 宽度和高度,默认为300x150 宽度/高度。您可以使用 JavaScript 动态调整 Canvas 元素的大小。

这是一个工作示例。

//get the elements
const canvas = document.getElementById("canvas");
const myDiv = document.getElementById("my-div");

//set the width and height attributes to the div width and height
function resize(){
  canvas.width = myDiv.clientWidth;
  canvas.height = myDiv.clientHeight;
}
//on page resize, call resize()
window.addEventListener("resize", resize, false);

//call resize() initially to set the canvas size correctly
resize();

//you can call resize() when your div changes size, dynamically resizing the canvas to the div
div {
  width: 50vw;
  height: 50vh;
  background-color: lightblue;
}
canvas {
  background-color: rgba(255,0,0,0.5);
}
<div id="my-div">
  <canvas id="canvas"></canvas>
</div>

关于javascript - 动态调整 Canvas 大小;保持图像的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50174083/

相关文章:

javascript - 如何访问内框Html?

javascript - 如何进一步优化 webpack bundle size

javascript - 使用单行函数或重复代码

javascript - Jquery Graph 显示引擎状态

html - 将 CSS 元素组合成一个元素

javascript - jQuery 在鼠标悬停在 php 上制作样式 css

javascript - 从 Date 设置 datetime-local 的值

html - 如何消除具有相对位置的按钮上的死区? (HTML/CSS)

jquery - html 将表格单元格中的文本与不同表格单元格中的图像相匹配

javascript - 我无法使用 jQuery 脚本将我的 div 居中