我有一个像这样的变量,
var colours = [
{ name: 'Yellow', hex: '#FFFF00' },
{ name: 'LawnGreen', hex: '#7CFC00' },
{ name: 'Aqua', hex: '#00FFFF' },
{ name: 'Fuchsia', hex: '#FF00FF' },
{ name: 'Blue', hex: '#0000FF' },
{ name: 'Red', hex: '#FF0000' }
];
我有这样的功能,
$(function()
{
$('li').live('click', function()
{
$('.activeColour').css('background-color', $(this).css('background-color'));
});
var $palette = $('ul');
for (var i = 0; i < colours.length; i++)
{
$palette.append($('<li />').css('background-color', colours[i].hex));
}
});
但是点击特定的颜色,我不需要rgb颜色,我需要变量中的十六进制颜色或警告将要做什么,这是对于document.execcommand请帮助。
答案 0 :(得分:1)
red = parseInt(your_red_value).toString(16);
green = parseInt(your_green_value).toString(16);
blue = parseInt(your_blue_value).toString(16);
if(red == 0)
red = '00';
if(green == 0)
green = '00';
if(blue == 0)
blue = '00';
var Hex_value = ('#' + red + green + blue).toUpperCase();
编辑:这就是你想要的
var color = $(this).css('background-color').substring($(this).css('background-color').indexOf('(')+1,$(this).css('background-color').indexOf(')')).split(',');
var hex_color ='#'+ parseInt(color[0]).toString(16) + parseInt(color[1]).toString(16) + parseInt(color[2]).toString(16) ;
答案 1 :(得分:0)
尝试以下功能,将RGB转换为十六进制颜色
function colorToHex(color) {
if (color.substr(0, 1) === '#') {
return color;
}
var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color);
var red = parseInt(digits[2]);
var green = parseInt(digits[3]);
var blue = parseInt(digits[4]);
var rgb = blue | (green << 8) | (red << 16);
return digits[1] + '#' + rgb.toString(16);
};
function rgbToHex(r, g, b) {
var rgb = b | (g << 8) | (r << 16);
return (0x1000000 | rgb).toString(16).substring(1);
}
谢谢,
希瓦