是否可以使用javascript来确定哪个颜色比当前背景更暗?也许是一些十六进制加法/减法?
我有一个可以是任何颜色的菜单,如果它不是太难,如果子菜单可能是一个更暗的颜色将是很好的。有谁知道如何实现这种效果?
答案 0 :(得分:9)
这样的事情:
function shadeColor(color, shade) {
var colorInt = parseInt(color.substring(1),16);
var R = (colorInt & 0xFF0000) >> 16;
var G = (colorInt & 0x00FF00) >> 8;
var B = (colorInt & 0x0000FF) >> 0;
R = R + Math.floor((shade/255)*R);
G = G + Math.floor((shade/255)*G);
B = B + Math.floor((shade/255)*B);
var newColorInt = (R<<16) + (G<<8) + (B);
var newColorStr = "#"+newColorInt.toString(16);
return newColorStr;
}
用法:
var newColor = shadeColor("#AA2222", -10);
alert(newColor); //Results in #a32020
以下是测试它的示例代码:http://pastebin.com/g6phySEv
答案 1 :(得分:2)
作为AB评论,“阴影”的定义不是很明确。尽管如此,在其他颜色表示中可能更容易想到这一点,例如hsv中的“V”。
你可以转换,减少v并转换回来,或者找出减少v映射到rgb hex的内容