【发布时间】:2012-01-27 07:09:35
【问题描述】:
我想调整 canvas 元素的大小,以便适合其父元素,例如 <body>(“全屏”)或一些 <div>。这是我的尝试:
// called at each frame
function update() {
var canvasNode = document.getElementById('mycanvas');
canvasNode.width = canvasNode.parentNode.clientWidth;
canvasNode.height = canvasNode.parentNode.clientHeight;
}
由于某种原因,画布不会停止增长!也许client* 不是正确的参数?
在此处查看实际代码: http://jsfiddle.net/ARKVD/24/
【问题讨论】:
-
如果画布为
155px高,则body为160px高,这使得画布每次都保持增长5px(body似乎在每次画布前都在5px前面增长)。不过,我不知道为什么,因为您确实在0px上设置了所有边距/填充。 (这是在 Chrome 上。) -
谢谢,在 Linux/Firefox 上,我看到 4px 或 3px 偏移(取决于我的窗口是否最大化)...烦人!
-
奇怪的是,如果画布的高度设置为
0px,则主体为20px高。如果画布被实际移除,主体只会折叠到0px。 -
你还必须将
html的高度设置为100%:jsfiddle.net/ARKVD/25 -
这很奇怪。无论如何,它在 DIV 中不起作用(我希望画布适合它的父大小):jsfiddle.net/ARKVD/29
标签: javascript html dom canvas html5-canvas