2012-05-07 12 views

risposta

41

Utilizzare globalAlpha. Dovrai anche disegnare con fillRect. clearRect cancella semplicemente i pixel. Non è in grado di cancellare parzialmente, quindi dovrai utilizzare fillRect o altre primitive di disegno.

da w3schools.com:

ctx.globalAlpha = 0.2; 
    ctx.fillRect(50,50,75,50); 
    ctx.globalAlpha = 1.0; 
+0

Questo rende tutta la tela trasparente (su Chrome atleast) –

+0

Brian, che non cancella tutta la tela, solo la dimensione e la posizione si dà . Ecco cosa sono quei 4 numeri; i primi due sono la coordinata X sulla tela, poi la coordina Y., e poi le dimensioni X e Y del rettangolo che vorresti cancellare. (Ricorda che i valori di Y diventano invece più grandi man mano che scendono, in Canvas) –

+4

Nota che dovrai richiamare 'ctx.globalAlpha = 1;' dopo queste due righe per impedire ulteriori chiamate di estrazione (anche precedente quelli, che ci crediate o no) dall'essere parzialmente trasparente. –

46

clearRect rimuove quello che era lì e lascia in bianco. Il modo migliore è usare un valore rgba fillStyle in quanto renderà trasparente solo il rettangolo (o qualsiasi altra forma che si sta disegnando). Il codice sarebbe:

ctx.fillStyle = 'rgba(225,225,225,0.5)'; 
ctx.fillRect(25,72,32,32); 

(grazie How to change the opacity (alpha, transparency) of an element in a canvas element after it has been drawn?)

+4

Preferisco questo rispetto alla risposta selezionata poiché non influisce globalmente su tutti i disegni dopo averlo utilizzato. –

+0

È possibile salvare e ripristinare il contesto in modo che non abbia effetto a livello globale utilizzando 'ctx.save()' e 'ctx.restore()' racchiuso tra le altre modifiche al contesto. –

+0

Preferisco questo più popolare perché è più concreto: parla della trasparenza del riempimento (voglio "pulire" un rettangolo), non della trasparenza di alcuna operazione. Le due soluzioni richiedono 4 linee (perché ctx.save() e ctx.restore() per mantenere il contesto). Ad ogni modo, le due soluzioni sono buone per me. – ddcovery

Problemi correlati