Jawaban:
Kanvas transparan secara default.
Coba atur gambar latar belakang halaman, lalu letakkan kanvas di atasnya. Jika tidak ada yang digambar di kanvas, Anda dapat sepenuhnya melihat latar belakang halaman.
Bayangkan kanvas seperti lukisan di atas piring kaca.
Saya yakin Anda mencoba melakukan apa yang baru saja saya coba lakukan: Saya ingin dua kanvas bertumpuk ... bagian bawah memiliki gambar statis dan yang atas berisi sprite animasi. Karena animasinya, Anda perlu membersihkan latar belakang lapisan atas menjadi transparan pada awal rendering setiap bingkai baru. Saya akhirnya menemukan jawabannya: tidak menggunakan globalAlpha, dan tidak menggunakan warna rgba (). Jawaban sederhana dan efektif adalah:
context.clearRect(0,0,width,height);
Jika Anda ingin item <canvas id="canvasID">
selalu transparan, Anda hanya perlu mengaturnya
#canvasID{
opacity:0.5;
}
Sebaliknya, jika Anda ingin beberapa elemen tertentu di dalam area kanvas menjadi transparan, Anda harus menyetel transparansi saat Anda menggambar, yaitu
context.fillStyle = "rgba(0, 0, 200, 0.5)";
opacity
perubahan tidak akan berpengaruh jika ada latar belakang mengisi kanvas.
Cukup atur latar belakang kanvas menjadi transparan.
#canvasID{
background:transparent;
}
Warnai kedua kanvas Anda ke kanvas ketiga.
Saya memiliki masalah yang sama dan tidak ada solusi di sini yang memecahkan masalah saya. Saya memiliki satu kanvas buram dengan kanvas transparan lain di atasnya. Kanvas buram sama sekali tidak terlihat tetapi latar belakang badan halaman terlihat. Gambar dari kanvas transparan di atas terlihat sedangkan kanvas buram di bawahnya tidak terlihat.
Tidak dapat mengomentari jawaban terakhir tetapi perbaikannya relatif mudah. Cukup atur warna latar belakang kanvas buram Anda:
#canvas1 { background-color: black; } //opaque canvas
#canvas2 { ... } //transparent canvas
Saya tidak yakin tetapi sepertinya warna latar belakang diwarisi sebagai transparan dari tubuh.