изменение цвета jquery - PullRequest
       4

изменение цвета jquery

2 голосов
/ 14 сентября 2010

Мне нужно создать все 255/256 цветовых вариаций данного цвета, есть ли какой-нибудь совет для начала или использовать библиотеку jQuery?

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 14 сентября 2010

Я предполагаю, что вы говорите о выполнении какой-то математики для отдельных каналов красного, зеленого и синего (я думаю, это то, что вы подразумеваете под "цветом") определенного значения цвета. Я могу только догадываться о ваших желаемых входных и выходных значениях, но вот пример для начала, манипулируя значениями в пространстве 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 может быть не лучшим цветовым пространством для использования, но, исходя из вашего вопроса, я думаю, это так.

1 голос
/ 15 сентября 2010

Спасибо.

Я нашел два интересных понятия:

Я собираюсь немного поиграть с понятиями из: http://www.xarg.org/project/jquery-color-plugin-xcolor/

$. Xcolor.lighten и $ .xcolor.darken

Еще одно интересное чтение: http://javascript.internet.com/miscellaneous/true-color-darkening-and-lightening.html

Но последний из них работает с красными, зелеными и синими: FF0000 00FF00 0000FF

Возможно, нужно просто немного исправить, чтобы принять 3 "настоящих" красных, зеленых и синих шестнадцатеричных значения, но я потерян.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...