Diciamo che io traggo un elemento HTML5 di rettangolo utilizzando questo:HTML5 - Modificare l'opacità di un pareggio rettangolo
context.clearRect(25, 72, 32, 32);
Come dovrei farlo il 50% trasparente?
Diciamo che io traggo un elemento HTML5 di rettangolo utilizzando questo:HTML5 - Modificare l'opacità di un pareggio rettangolo
context.clearRect(25, 72, 32, 32);
Come dovrei farlo il 50% trasparente?
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;
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);
Preferisco questo rispetto alla risposta selezionata poiché non influisce globalmente su tutti i disegni dopo averlo utilizzato. –
È 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. –
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
Questo rende tutta la tela trasparente (su Chrome atleast) –
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) –
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. –