2017-09-04 70 views
2

我想在黑色畫布上「畫」一個矩形,但它不起作用。這是我的代碼:Javascript | HTML畫布錯誤

window.onload = function() { 
 
    canvas = document.getElementById('canvas'); 
 
    canvasContext = canvas.getContext('2d'); 
 

 
    draw(); 
 
} 
 

 
function draw() { 
 
    canvasContext.fillstyle='black'; 
 
    canvasContext.fillRect(0,0,800,600); 
 
    canvasContext.fillstyle='white'; 
 
    canvasContext.fillRect(0,0,10,10); 
 
}
<canvas id="canvas" width="800" height="600"></canvas>

爲什麼它不工作?

+1

^h你好 - 什麼不具體?它顯示任何東西嗎? –

+1

它不是**問題,但是:該代碼正在成爲[隱性全局的恐怖]的獵物(http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html) *(這是我貧血的小博客上的一篇文章)*。在適當的範圍聲明你的變量。在這種情況下,我可能會刪除'onload'處理程序,而只是將所有代碼放在HTML末尾的'script'範圍函數中,就在關閉''標籤之前。 –

+0

canvasContext將無法在繪圖函數中訪問 –

回答

1

您使用小寫字母代替填充樣式的大寫的 「S」

變化

canvasContext.fillstyle 

「S」
canvasContext.fillStyle 

window.onload = function() { 
 
    canvas = document.getElementById('canvas'); 
 
    canvasContext = canvas.getContext('2d'); 
 

 

 
    draw(); 
 

 
} 
 

 
function draw() { 
 
    canvasContext.fillStyle='black'; 
 
    canvasContext.fillRect(0,0,800,600); 
 
    canvasContext.fillStyle='white'; 
 
    canvasContext.fillRect(0,0,100,100); 
 

 

 
}
<canvas id="canvas" width="800" height="600"></canvas>

+0

代碼轉儲不是*有用的*答案。說*你改變了什麼,以及*爲什麼*。 –

+1

但是,拼寫錯誤不需要答案,只是評論和(如果可以的話)關閉投票。發佈答案可以防止OP刪除問題,這是正確的行動方式,因爲這對未來其他人沒有用(並且可能會迫使他們接受downvotes的rep損失)。 –

+0

K我已編輯我的答案 –