2012-12-13 22 views
0

我有一個問題讓我的窗口大小,我試試這個代碼:如何使用畫布元素填充瀏覽器窗口而不創建滾動條?

的Javascript

var game; 
function game() { 
    this.canvas = document.getElementById('canvas'); 
    this.canvasWidth = window.innerWidth; 
    this.canvasHeight = window.innerHeight;  
    this.initCanvas = function() { 
     this.canvas.style.width = this.canvasWidth + "px"; 
     this.canvas.style.height = this.canvasHeight + "px"; 
    } 
    this.run = function() { 
     this.initCanvas(); 
    } 
} 
game = new game(); 
game.run(); 

我也有

CSS

html, body { 
    padding: 0; 
    margin: 0; 
} 
只有

我我的身體上有一塊帆布。

問題是,我有一個垂直和水平滾動條。這意味着畫布的大小太大。如何使窗口大小不顯示滾動條?

+0

你的代碼有什麼問題? – Luke

+0

那麼你會得到什麼? –

+0

當你說窗口大小時,你指的是哪個窗口?瀏覽器窗口?頁面尺寸? – Jono

回答

3

它看起來像你只是想讓你的畫布有100%的寬度和高度。

HTML

<body> 
    <canvas id="canvas"></canvas> 
</body> 

CSS

body, html { 
    height: 100%; 
    width: 100%; 
    margin: 0px; 
} 
canvas { 
    background: #ffcccc; 
    height: 100%; 
    width: 100%; 
    display: block; 
} 
​ 

Demo

或者,如果你想用你的代碼,但擺脫:您可以只用CSS做窗口上的滾動條,你n在畫布標籤上指定block

CSS

canvas { 
    display: block; 
} 

Demo

+0

謝謝,taht的工作正常,這比javasript更輕 – Ajouve

2

當您使用CSS風格你<canvas>元素,它將得到縮放,而不是規模。請務必在canvas元素上設置.width.height屬性(即canvas.width而不是canvas.style.width)。

jsfiddle example

在第一畫布元件正確縮放的示例中,第二(使用CSS)未正確縮放。這與CSS縮放的默認畫布元素大小(300x150)有關。

爲防止在將<canvas>設置爲完整窗口寬度/高度時將滾動條設置爲bodyoverflow:hidden;,如上面的jsfiddle中所用。

+0

感謝您的代碼,我不認爲調整大小:) – Ajouve

相關問題