gpt4 book ai didi

javascript - 无法使用 getComputedStyle 函数设置 Canvas 大小

转载 作者:行者123 更新时间:2023-11-28 06:29:56 24 4
gpt4 key购买 nike

所以,问题是 getComputedStyle 函数的工作方式真的很奇怪。首先,我通过 ID 获取 Canvas ,例如 var canvas = document.getElementById('canvas') 然后使用 getComputedStyle 函数,并尝试设置新的宽度和高度值。但问题是它忽略了高度,只取宽度。

JavaScript:

var newCanvas = getComputedStyle(canvas)

var width = parseInt(newCanvas.getPropertyValue('width'), 10)
var height = parseInt(newCanvas.getPropertyValue('height'), 10)

canvas.height = height
canvas.width = width

HTML:

<canvas id="canvas" width="480" height="320"></canvas>

CSS:

canvas {
display: block;
margin: 10px auto;
border: 3px solid black;
border-radius: 10px;
height: 50%;
width: 75%;
}

当我更改高度值(在 CSS 文件中)时,它不会影响 Canvas 的大小。但是当我改变宽度值时,宽度和高度都会改变。

最佳答案

我不会依赖 getComputedStyle,因为它在不同浏览器中的处理方式可能不一致。相反,只需使用 canvas.offsetWidthcanvas.offsetHeight

另请注意, Canvas 大小属性和 Canvas 样式之间存在区别。 Canvas widthheight 控制绘图区域的大小,而样式仅更改输出的大小。如果您将 Canvas 视为图像(这实际上是浏览器处理它的方式),它有宽度和高度,但您也可以使用 css 属性控制如何拉伸(stretch)/定位它。

JSFiddle

关于javascript - 无法使用 getComputedStyle 函数设置 Canvas 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com