私はここで新しいので、私の無知を許してください。みんなが素晴らしい金曜日の夜を過ごしていることを願っています。キャンバスがあり、そのキャンバスにバーがある Web サイトで作業しています。私の目標は、「D」を押すとバーが右に伸び、「A」を押すと左に収縮することです。関数fillRectを使用していますが、clearRect関数を使用しようとしているため、収縮部分はまったく機能していませんが、右部分の拡張はうまく機能しています。clearRect 関数は、長方形の元の幅全体をクリアし、キャンバスの水色を一緒にクリアして、灰色の苦味のストライプを残しています。これが私のコードです。「A」を押したときに、下にある美しい青色のキャンバスをそのまま残しながら、灰色のバーの最後の10ピクセルをクリアする方法を知っている人がいる場合
$(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;
}
}
});