Réponses:
Les toiles sont transparentes par défaut.
Essayez de définir une image d'arrière-plan de page, puis placez une toile dessus. Si rien n'est dessiné sur le canevas, vous pouvez voir entièrement l'arrière-plan de la page.
Pensez à une toile comme à la peinture sur une plaque de verre.
Je crois que vous essayez de faire exactement ce que je viens d'essayer de faire: je veux deux toiles empilées ... celle du bas a une image statique et celle du haut contient des sprites animés. En raison de l'animation, vous devez effacer l'arrière-plan du calque supérieur pour le rendre transparent au début du rendu de chaque nouvelle image. J'ai finalement trouvé la réponse: il n'utilise pas globalAlpha, et il n'utilise pas de couleur rgba (). La réponse simple et efficace est:
context.clearRect(0,0,width,height);
Si vous voulez qu'un particulier <canvas id="canvasID">
soit toujours transparent, il vous suffit de définir
#canvasID{
opacity:0.5;
}
Au lieu de cela, si vous voulez que certains éléments particuliers à l'intérieur de la zone de dessin soient transparents, vous devez définir la transparence lorsque vous dessinez, c'est-à-dire
context.fillStyle = "rgba(0, 0, 200, 0.5)";
opacity
modifications n'auront aucun effet s'il y a un fond de remplissage dans le canevas.
Réglez simplement l'arrière-plan de la toile sur transparent.
#canvasID{
background:transparent;
}
Peignez vos deux toiles sur une troisième toile.
J'ai eu ce même problème et aucune des solutions ici n'a résolu mon problème. J'avais une toile opaque avec une autre toile transparente au-dessus. La toile opaque était complètement invisible mais l'arrière-plan du corps de la page était visible. Les dessins de la toile transparente sur le dessus étaient visibles alors que la toile opaque en dessous ne l'était pas.
Je ne peux pas commenter la dernière réponse mais le correctif est relativement simple. Définissez simplement la couleur d'arrière-plan de votre toile opaque:
#canvas1 { background-color: black; } //opaque canvas
#canvas2 { ... } //transparent canvas
Je ne suis pas sûr mais il semble que la couleur d'arrière-plan est héritée comme transparente du corps.