Limpiar contenido de un Canvas en HTML5

27/Ago/2012 HTML5 2 Comentarios

En multiples ejemplos hemos visto como poner contenido sobre un CANVAS de HTML5. En este caso vamos a aprender como podemos limpiar el contenido del CANVAS. Es decir, eliminar cualquier dibujo o trazo que hayamos insertado en él.

Así que para empezar necesitamos tener un elemento CANVAS con contenido. Podemos volcar lo siguiente:

Crear el CANVAS:

  1. <canvas height="300px" width="300px" id="micanvas">
  2. Su navegador no soporta en elemento CANVAS</canvas>
  3. <button id="limpiar">Limpiar Canvas</button>

El insertarle contenido:

  1.  
  2. var canvas = document.getElementById("micanvas");
  3. var ctx = canvas.getContext("2d");
  4.  
  5. for (var x=0; x<=300; x=x+10){
  6. ctx.moveTo(x,0);
  7. ctx.lineTo(x,300);
  8. }
  9.  
  10. for (var y=0; y<=300; y=y+10){
  11. ctx.moveTo(0,y);
  12. ctx.lineTo(300,y);
  13. }
  14.  
  15. ctx.strokeStyle = "#f212aa";
  16. ctx.stroke();
  17.  

Hemos creado un elemento CANVAS y hemos dibujado líneas sobre él. Además hemos añadido un botón, con id "limpiar", que será el encargado de limpiar el contenido de nuestro CANVAS.

Para proceder a la limpieza del CANVAS solo tenemos que recurrir a un "pequeño truco", el cual consiste en asignar un nuevo ancho al elemento CANVAS. Pero, ¿cuál será el nuevo ancho? Pues exactamente el mismo ancho que tiene en ese momento. Si bien, por el acto de asignar el nuevo ancho se limpiará el contenido del CANVAS.

El código quedará de la siguiente forma:

  1. var limpiar = document.getElementById("limpiar");
  2. limpiar.addEventListener("click",function(){
  3. canvas.width=canvas.width;
  4. },false);

Lo que hemos hecho ha sido dar el mismo valor de la propiedad width del CANVAS. Y ya tenemos en blanco, de nuevo, nuestro CANVAS.

2 comentarios en “Limpiar contenido de un Canvas en HTML5”

Víctor Cuervo

kazi

Buenas tardes y para eliminar solo una linea de canvas como lo harias…

Víctor Cuervo

RiCarter

Muy bueno. Sencillo y efectivo 100%.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*