Ich bin völlig neu in diesem Canvas Element. Ich bin in der Lage, Linie in Leinwand zu zeichnen, aber nicht in der Lage, nur spezifische Linie zu löschen. Ganze Leinwand wird leer.So löschen Sie bestimmte Zeile in Canvas: HTML5
dies versucht: HTML:
<canvas id="cvs" width="400" height="400"></canvas>
<hr />
<input type="submit" id="reDrowA" value="Draw A" />
<input type="submit" id="reDrowB" value="Draw B" />
<hr />
<input type="submit" id="clearA" value="Clear A" />
<input type="submit" id="clearB" value="Clear B" />
Script
$(document).ready(function(){
canvas = document.getElementById("cvs");
$("#reDrowA").on("click",function(){
a = canvas.getContext('2d');
a.translate(0.5, 0.5);
a.beginPath();
a.setLineDash([2,10]);
a.moveTo(10,10);
a.lineTo(300,10);
a.lineTo(300,300);
a.stroke();
});
$("#reDrowB").on("click",function(){
b = canvas.getContext('2d');
b.translate(0.5, 0.5);
b.beginPath();
b.setLineDash([2,10]);
b.moveTo(10,10);
b.lineTo(10,300);
b.lineTo(300,300);
b.stroke();
});
$("#clearA").on("click",function(){
a.clearRect(0, 0, canvas.width, canvas.height);
});
$("#clearB").on("click",function(){
b.clearRect(0, 0, canvas.width, canvas.height);
});
});
Fiddle: http://jsfiddle.net/8YNvu/
Soweit ich weiß, können Sie nicht auf ein bestimmtes Element im Canvas zugreifen, Sie müssen es vollständig löschen. Ich weiß nicht, was Ihre Anforderung ist, aber wenn Sie etwas wie Diagramme zeichnen und auf einzelne Elemente zugreifen möchten, reagieren Sie auf seine Ereignisse etc, schauen Sie in Svg ... –
Sie können das nicht tun. Die Zeichenfläche ist eine Bitmap. Alles, was du darauf zeichnest, bleibt dort. Sie können bestimmte Zeichnungen anschließend nicht bearbeiten. Sie können es nur als Ganzes löschen. Wenn Sie "Objekte" auf der Leinwand zeichnen und sie später bearbeiten und entfernen möchten, müssen Sie diese Objekte selbst (in einem Array) verfolgen und dann über eine Zeichenfunktion verfügen, die die Zeichenfläche regelmäßig und im Rohzustand aktualisiert die aktuellen Objekte im Array. Um ein bestimmtes Objekt zu löschen, löschen Sie es einfach aus dem Array und zeichnen Sie es neu. – HaukurHaf
Um zwei Zeilen zu verwalten, muss ich also zwei Canvas-Elemente erstellen? –