Comment puis-je écrire une valeur de couleur RGB en JavaScript?

j'essaye de changer la couleur de la fonction swapFE() ci-dessous et je ne peux pas trouver comment l'écrire. On m'a dit de changer la couleur du noeud de phrase en valeur de couleur (155, 102, 102). J'ai essayé de faire comme vous pouvez le voir à la fin de la fonction, consultez - parent.childNodes[1].style.couleur= (155, 102, 102); mais il sort juste un bleu marine foncé. C'est censé être une couleur rouge brunâtre. Je n'ai aucune idée de ce que je fais mal. Comment puis-je corriger cela pour obtenir la bonne couleur RVB? Je sais que j'ai l' c'est juste trouver comment écrire la couleur et la valeur qui me pose problème. Merci!

//this function changes the French phrase to an English phrase. 
    function swapFE(e) { 
           var phrase = e.srcElement;  
           //phrase.innerText = english[phrase.id]; 
           var parent = phrase.parentNode; 
           //childNodes[0] is the number of the phrase +1  
           var idnum = parent.childNodes[0]; 
           //parseInt takes a textstring and extracts it to make a number. Then you will subtract 1 from the number. 

       var phrasenum = parseInt(idnum.innerHTML)-1; 
       phrase.innerText = english[phrasenum]; 
       parent.childNodes[1].style.fontStyle= "normal"; 
       parent.childNodes[1].style.color= (155, 102, 102); 
  } 


function swapEF(e) { 
       var phrase = e.srcElement;  
       //phrase.innerText = english[phrase.id]; 
       var parent = phrase.parentNode; 
       var idnum = parent.childNodes[0]; 
       var phrasenum = parseInt(idnum.innerHTML)-1; 
       phrase.innerText = french[phrasenum]; 
       parent.childNodes[1].style.fontStyle= "italic"; 
       parent.childNodes[1].style.color= "black"; 
31
demandé sur Ashley 2010-01-31 23:41:31

5 réponses

essaie:

parent.childNodes[1].style.color = "rgb(155, 102, 102)"; 

Ou

parent.childNodes[1].style.color = "#"+(155).toString(16)+(102).toString(16)+(102).toString(16);
52
répondu Marius 2010-01-31 20:43:55

Voici une fonction simple qui crée une chaîne de couleurs CSS à partir de valeurs RGB allant de 0 à 255:

function rgb(r, g, b){
  return "rgb("+r+","+g+","+b+")";
}

alternativement (pour créer moins d'objets string), vous pouvez utiliser array join ():

function rgb(r, g, b){
  return ["rgb(",r,",",g,",",b,")"].join("");
}

les fonctions ci-dessus ne fonctionneront correctement que si (r, g, et b) sont des entiers entre 0 et 255. S'ils ne sont pas entiers, le système de couleurs les traitera comme dans la gamme de 0 à 1. Pour tenir compte des nombres non entiers, utilisez ce qui suit:

function rgb(r, g, b){
  r = Math.floor(r);
  g = Math.floor(g);
  b = Math.floor(b);
  return ["rgb(",r,",",g,",",b,")"].join("");
}
12
répondu curran 2013-07-28 16:14:57

c'est mieux de fonction

function RGB2HTML(red, green, blue)
{
    var decColor =0x1000000+ blue + 0x100 * green + 0x10000 *red ;
    return '#'+decColor.toString(16).substr(1);
}
8
répondu asd 2013-01-05 22:57:48

je montre avec un exemple d'ajout de couleur aléatoire. Vous pouvez écrire de cette façon

var r = Math.floor(Math.random() * 255);
var g = Math.floor(Math.random() * 255);
var b = Math.floor(Math.random() * 255);
var col = "rgb(" + r + "," + g + "," + b + ")";
parent.childNodes[1].style.color = col;

la propriété est attendue comme une chaîne de caractères

4
répondu Ein2012 2015-02-03 09:34:24
dec2hex = function (d) {
  if (d > 15)
    { return d.toString(16) } else
    { return "0" + d.toString(16) }
}
rgb = function (r, g, b) { return "#" + dec2hex(r) + dec2hex(g) + dec2hex(b) };

et:

parent.childNodes[1].style.color = rgb(155, 102, 102);
-1
répondu Bandit 2017-08-08 13:38:03