Я предполагаю, что вы говорите о выполнении какой-то математики для отдельных каналов красного, зеленого и синего (я думаю, это то, что вы подразумеваете под "цветом") определенного значения цвета. Я могу только догадываться о ваших желаемых входных и выходных значениях, но вот пример для начала, манипулируя значениями в пространстве RGB *. Предполагая, что вы вводите шестнадцатеричное число:
var color = 0xFFD700, // "gold"
// separate the channels using bitmasks
redValue = color & 0xFF0000, // redValue is 0xFF0000
greenValue = color & 0x00FF00, // greenValue is 0x00D700
blueValue = color & 0x0000FF; // blueValue is 0x000000
// now we can manipulate each color channel independently
var lessRed = redValue - 0x010000,
moreBlue = blueValue + 0x000001,
newColor = lessRed + greenValue + moreBlue; // newColor is 0xFED701
Итак, один из способов получения массива всех цветов, получаемых путем изменения красного канала, с постоянными зелеными и синими:
var colors = [],
startColor = 0x00D700,
endColor = 0xFFD700,
incr = 0x010000;
while (startColor <= endColor)
{
colors.push(startColor);
startColor = startColor + incr;
}
// print the hex values
var i, len = colors.length, out = [];
for (var i=0; i<len; i++)
{
out.push('0x' + colors[i].toString(16))
}
console.log(out.join('\n'))
Если вы вводите строку, вам нужно сначала преобразовать ее в число.
var input = 'FFD700',
hexValue = parseInt(input, 16);
console.log(hexValue.toString(10)); // prints: 16766720
console.log(hexValue.toString(16)); // prints: FFD700
О, и jQuery не нужен!
*
согласно этому ответу , пространство RGB может быть не лучшим цветовым пространством для использования, но, исходя из вашего вопроса, я думаю, это так.