Я даже не совсем уверен, как это спросить. LESS CSS Framework содержит несколько функций для управления цветом, я хотел бы знать, как вызывать эти функции самостоятельно, чтобы изменить цвет. Проблема в том, что эти функции расположены внутри другой функции и определены так:
(function (tree) {
tree.functions = {
darken: function(color, amount){
...stuff...
}
}
}
Я знаю достаточно, чтобы предположить, что darken - это метод tree.functions , но я не знаю, как его назвать, потому что он внутри анонимная функция (функция (дерево) .
[править]
После получения решения от @pradeek я создал эту функцию на случай, если она кому-нибудь понадобится. Легко адаптируется ко всем другим функциям, которые LESS имеет:
var lessColor = {
/*
|--------------------------------------------------------------------------
| Darken
|--------------------------------------------------------------------------
*/
darken: function(col, val){
col = col.replace(/#/g, ''); //Remove the hash
var color = new less.tree.Color(col); //Create a new color object
var amount = new less.tree.Value(val); //Create a new amount object
var newRGB = less.tree.functions.darken(color, amount); //Get the new color
var hex = (newRGB.rgb[0] + 256 * newRGB.rgb[1] + 65536 * newRGB.rgb[2]).toString(16);
hex = hex.split('.', 1); //Remove everything after the decimal if it exists
//Add padding to the hex to make it 6 characters
while(hex.length < 6){
hex = hex+'0';
}
hex = '#'+hex; //Add the hash
return hex; //return the color
}
}
И вы можете назвать это так:
$(this).css('background', lessColor.darken($(this).css('background'), .25);