我是新來的,所以原諒我的無知。希望每個人都有一個偉大的星期五晚上。我正在一個網站上打印一張畫布,在畫布上會有一個欄杆,我的目標是在按'D'時簡單地將欄杆向右延伸,並在按下'A'時向左退回。我正在使用函數fillRect,並且擴展右部分工作良好,而縮回部分根本不工作,因爲我試圖使用clearRect函數。 clearRect函數正在清除矩形的整個原始寬度,沒有和畫布的淺藍色一起清除,留下一條灰色的苦味。這裏是我的代碼,如果您有任何想法,我可以設法清除灰色條的最後10個像素,同時在按下'A'時保留美麗的藍色底層畫布,我將永遠感激。Javascript帆布問題
$(document).ready(function(){
var width=10;
$(document).keydown(function(key){
if(key.which === 68)
adjustWidth(1);
else if(key.which === 65)
adjustWidth(2);
});
var canvas=$("#canvas")[0];
var ctx = canvas.getContext("2d");
var w = $("#canvas").width();
var h = $("canvas").height();
ctx.fillStyle = "#C1DAD6";
ctx.fillRect(0,0,w,h);
ctx.strokeStyle="black";
ctx.strokeRect(0,0,w,h);
function adjustWidth(iw)
{ ctx.fillStyle = "grey";
if(iw===1){
ctx.fillRect(0,100,width+10,5)
width+=10;
}
else if(iw===2){
ctx.clearRect(0,100,width,5)
width-=10;
}
}
});
可你只是'fillRect'藍色,而不是將其清除? – akonsu