web-dev-qa-db-fra.com

Comment écrire une valeur de couleur RVB en JavaScript?

J'essaie de changer la couleur de la fonction swapFE () ci-dessous et je ne sais pas comment l'écrire. On m'a dit de changer la couleur du nœud de phrase en valeur de couleur (155, 102, 102). J'ai essayé de le faire comme vous pouvez le voir à la fin de la fonction see- parent.childNodes [1] .style.color = (155, 102, 102); mais il sort juste un bleu marine foncé. C'est censé être d'un rouge brunâtre. Je n'ai aucune idée de ce que je fais mal. Comment puis-je résoudre ce problème pour obtenir la bonne couleur RVB? Je sais que j'ai le reste, c'est juste de savoir comment écrire la couleur et la valeur qui me pose des problèmes. 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"; 
38
Ashley

essayer:

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

Ou

parent.childNodes[1].style.color = "#"+(155).toString(16)+(102).toString(16)+(102).toString(16);
59
Marius

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

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

Alternativement (pour créer moins d'objets chaîne), vous pouvez utiliser le tableau 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 compris entre 0 et 255. S'ils ne sont pas des entiers, le système de couleurs les traitera comme dans la plage de 0 à 1. Pour tenir compte des non-entiers chiffres, 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("");
}
13
curran

c'est une meilleure fonction

function RGB2HTML(red, green, blue)
{
    var decColor =0x1000000+ blue + 0x100 * green + 0x10000 *red ;
    return '#'+decColor.toString(16).substr(1);
}
9
asd

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 sous forme de chaîne

4
Ein2012

Fonctions d'assistance ES6 (modèle littéral):

function rgba(r, g, b, a=1){
    return `rgba(${r}, ${g}, ${b}, ${a})`
}
function rgb(r, g, b){
    return `rgb(${r}, ${g}, ${b})`
}
0
Scott Weaver