J'essaie de créer un bouton pour effacer une toile, mais sans succès.
Mes codes pour cela
JS
function clearcanvas1(){
ctx.clearRect(0, 0, canvas.width, canvas.height);
var w = canvas.width; canvas.width = 1; canvas.width = w;
}
HTML
<button onmouseover="clearcanvas1()">clear</button>
J'ai essayé d'autres options telles que
canvas.width = canvas.width;
et
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
Pour le moment, j'ai remplacé le bouton d'effacement par une fonction location.reload, mais cela a bouleversé un canevas secondaire sur la même page que je souhaite exploiter indépendamment. Comment puis-je atteindre cet objectif?
Réponses:
2 pour la réponse № 1Vous ne semblez pas avoir le canvas
élément dans votre fonction (ou même son contexte) ...
function clearcanvas1()
{
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
De toute évidence, vous aurez besoin de mettre à jour document.getElementById()
pour représenter l'ID correct pour votre marquage, ou vous pouvez utiliser document.getElementsByTagName()
.
0 pour la réponse № 2
sur le bouton appeler la fonction ci-dessous
function clearall()
{
var canvas=document.getElementById("canvas+id");
var context=canvas.getContext("2d");
context.clearRect(0,0,canvas.width,canvas.height);
}
J'espère que ceci vous aidera. Sachez que cette fonction effacera tout dans la toile.