2010-05-20 5 views
3

Quel serait le moyen préféré pour convertir l'opacité (0 - 1) en hexadécimal (00 - ff) en Javascript?Convertir l'opacité en hexadécimal en Javascript

Mes pensées sont d'utiliser une instruction if pour vérifier si l'opacité est comprise entre 1 et 0.95, puis utiliser ff. Me frayer un chemin vers le bas à 0.

+0

Que voulez-vous dire par "convertir"? Parlez-vous de changer une valeur de couleur en fonction d'une superposition d'une couleur différente et de son réglage d'opacité? –

+0

@Pekka L'opacité n'a vraiment rien à voir avec ça. il veut convertir un flottant dans la plage 0-1 à la valeur hexadécimale appropriée de 1 octet, donc 1.0 va à 0xFF –

Répondre

7

Au niveau le plus élémentaire, vous êtes juste convertir un nombre décimal en hex: How to convert decimal to hex in JavaScript?:

yourNum = yourNum.toString(16); 

La 0.0 - gamme 1.0 est un format de pourcentage de la 0- 255 plage. Multipliez donc votre valeur (par exemple 0,5 * 255), puis convertissez en hexadécimal, vous obtiendrez la valeur correcte.

+0

@Anon: Pourquoi le dv? –

+0

La version originale (éditions ninja pré-multiples) était incorrecte, juste indiqué le poste SO et n'avait aucune mention de multiplier par 255 –

+0

Je n'ai aucune idée pourquoi vous avez voté vers le bas, j'ai vu certaines personnes sont très strictes pour mettre réponse alors référence non seulement une référence, mais un vote vers le bas est très exagéré, surtout vous avez posté une bonne réponse. – Kronass

3

Sur la base des suggestions des autres réponses:

Math.floor(0.0 * 255).toString(16); // Returns '00' 
Math.floor(0.5 * 255).toString(16); // Returns '75' 
Math.floor(1.0 * 255).toString(16); // Returns 'FF' 
Questions connexes