Ответ 1
попробовать:
parent.childNodes[1].style.color = "rgb(155, 102, 102)";
Или
parent.childNodes[1].style.color = "#"+(155).toString(16)+(102).toString(16)+(102).toString(16);
Я пытаюсь изменить цвет функции swapFE() ниже, и я не могу понять, как его записать. Мне сказали изменить цвет фразы node на значение цвета (155, 102, 102). Я попытался сделать это, как вы можете видеть в конце функции see-parent.childNodes [1].style.color = (155, 102, 102); но он просто выглядит темно-синим. Он должен быть коричневато-красного цвета. Я понятия не имею, что я делаю неправильно. Как я могу исправить это, чтобы получить правильный цвет RGB? Я знаю, что у меня все в порядке, просто выясняя, как писать цвет и ценность, которая дает мне проблемы. Спасибо!
//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";
попробовать:
parent.childNodes[1].style.color = "rgb(155, 102, 102)";
Или
parent.childNodes[1].style.color = "#"+(155).toString(16)+(102).toString(16)+(102).toString(16);
Вот простая функция, которая создает цветную строку CSS из значений RGB в диапазоне от 0 до 255:
function rgb(r, g, b){
return "rgb("+r+","+g+","+b+")";
}
В качестве альтернативы (для создания меньшего количества строковых объектов) вы можете использовать массив join():
function rgb(r, g, b){
return ["rgb(",r,",",g,",",b,")"].join("");
}
Вышеуказанные функции будут работать должным образом только в том случае, если (r, g и b) являются целыми числами от 0 до 255. Если они не являются целыми числами, система цвета будет обрабатывать их как в диапазоне от 0 до 1. Для учета нецелые числа, используйте следующее:
function rgb(r, g, b){
r = Math.floor(r);
g = Math.floor(g);
b = Math.floor(b);
return ["rgb(",r,",",g,",",b,")"].join("");
}
Вы также можете использовать языковые функции ES6:
const rgb = (r, g, b) =>
'rgb(${Math.floor(r)},${Math.floor(g)},${Math.floor(b)})';
это лучшая функция
function RGB2HTML(red, green, blue)
{
var decColor =0x1000000+ blue + 0x100 * green + 0x10000 *red ;
return '#'+decColor.toString(16).substr(1);
}
Я показываю пример добавления случайного цвета. Вы можете написать этот способ
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;
Свойство ожидается как строка
Вспомогательные функции ES6 (шаблонные):
function rgba(r, g, b, a=1){
return 'rgba(${r}, ${g}, ${b}, ${a})'
}
function rgb(r, g, b){
return 'rgb(${r}, ${g}, ${b})'
}
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) };
и
parent.childNodes[1].style.color = rgb(155, 102, 102);