我試圖讓我的畫布,以適合頁面,當我這樣做:HTML5畫布適合窗口
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
它去剛過水平和垂直方向這是增加滾動條。 它的大小是關於滾動條的大小正在考慮之前,他們甚至在那裏(只是一個猜測),這是怎麼回事,我怎麼會得到它適合頁面沒有滾動條。
我試圖讓我的畫布,以適合頁面,當我這樣做:HTML5畫布適合窗口
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
它去剛過水平和垂直方向這是增加滾動條。 它的大小是關於滾動條的大小正在考慮之前,他們甚至在那裏(只是一個猜測),這是怎麼回事,我怎麼會得到它適合頁面沒有滾動條。
將畫布位置設置爲absolute
。還要確保沒有填充或包含元素中設置的頁邊距。
這就是我在我所有的全屏畫布演示中使用的。
body, html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
canvas {
position:absolute;
}
喜歡它。非常感謝你 – 2017-02-01 14:25:41
'canvas {width} {width} 100%; 身高:100%; }' 這也適用,最好不要使用絕對定位。 (例如,如果您使用絕對定位並且畫布大於頁面,則無法向上或向下移動)。 – FedericoCapaldo 2017-05-19 06:18:54
這爲我工作
function resize() {
var canvas = document.getElementById('game');
var canvasRatio = canvas.height/canvas.width;
var windowRatio = window.innerHeight/window.innerWidth;
var width;
var height;
if (windowRatio < canvasRatio) {
height = window.innerHeight;
width = height/canvasRatio;
} else {
width = window.innerWidth;
height = width * canvasRatio;
}
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
};
window.addEventListener('resize', resize, false);
默認畫布設置爲display: inline-block
。將其更改爲display: block
body {
margin: 0;
padding: 0;
}
canvas {
display: block;
}
這不適合我。 (Chrome版本57.0.2987.133(64位)) – keithpjolley 2017-10-23 17:52:57
我有同樣的問題,我通過刪除border
解決它。
爲什麼不禁用CSS滾動條? html,body {overflow:hidden;} – 2013-03-20 14:21:53
感謝您應該考慮到這一點,現在將不得不做:) – Larry 2013-03-20 14:34:34
請看這裏的例子http://bravenewmethod.wordpress.com/2011/08/28/html5-canvas-layout - 移動設備/ – 2013-03-20 15:11:09