Javascript rgb到十六进制的转换
我想说的是: 从元素中拾取RGB值 将其转换为十六进制 将其放入文本字段中 第一个解决方案: 摘自这条线 如果我将值传递给as numbers rgbtohex255255,则此操作有效,但如果我尝试将数字作为变量rgbToHexrgbValue提供,则不会执行任何操作。请参见演示中的第19到25行 感谢所有帮助:尝试以下方法:Javascript rgb到十六进制的转换,javascript,hex,rgb,Javascript,Hex,Rgb,我想说的是: 从元素中拾取RGB值 将其转换为十六进制 将其放入文本字段中 第一个解决方案: 摘自这条线 如果我将值传递给as numbers rgbtohex255255,则此操作有效,但如果我尝试将数字作为变量rgbToHexrgbValue提供,则不会执行任何操作。请参见演示中的第19到25行 感谢所有帮助:尝试以下方法: function componentToHex(c) { var hex = c.toString(16); return hex.length == 1 ?
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(r, g, b) {
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
//Slap the rel values into the fields
$('.color').click(function(e) {
e.preventDefault();
var rgbVal = $(this).attr('rel');
var rgbValSplit = rgbVal.split(",");
for (var i = 0; i < 3; i++) {
if (!rgbValSplit[i]) {
rgbValSplit[i] = 0;
}
}
var finalHex = rgbToHex(+rgbValSplit[0], +rgbValSplit[1], +rgbValSplit[2]);
$('.color-picker-rgb').val(rgbVal);
$('.color-picker-hex').val(finalHex);
$('body').css('background', finalHex);
});
主要问题是您需要像预期的那样传递3个参数。另一个问题是它需要的是数字,而不是字符串。所以当你通过它191,c.toString 16将计算为c。如果你给它传递一个数字,比如191,它将计算为正确的值。那么,你把一个参数传递给一个三参数函数,希望它能工作吗?谢谢:我只是继续删除这个愚蠢的问题。
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(r, g, b) {
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(r, g, b) {
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
//Slap the rel values into the fields
$('.color').click(function(e) {
e.preventDefault();
var rgbVal = $(this).attr('rel');
var rgbValSplit = rgbVal.split(",");
for (var i = 0; i < 3; i++) {
if (!rgbValSplit[i]) {
rgbValSplit[i] = 0;
}
}
var finalHex = rgbToHex(+rgbValSplit[0], +rgbValSplit[1], +rgbValSplit[2]);
$('.color-picker-rgb').val(rgbVal);
$('.color-picker-hex').val(finalHex);
$('body').css('background', finalHex);
});