wax*_*cal 15 javascript jquery hex colors
我正在寻找一种理想的jQuery方法,根据背景颜色的亮度来确定正确的文本颜色?
例如白色背景,黑文本颜色.我相信这可以通过添加HEX值和猜测来粗略地完成,但有没有人知道更好的方法或jQuery方式来做到这一点?
Viv*_*ath 37
您可以尝试反转颜色的十六进制值.因此#FFFFFF变得#000000和#AAAAAA变#555555.当然,这种方法会在你倒入的时候落下#888888,给你#777777(它们没有那么多的对比).
此博客文章描述了另一种方式(它们仅使用黑色或白色作为前景色,具体取决于背景颜色).我把它翻译成Javascript:
function idealTextColor(bgColor) {
var nThreshold = 105;
var components = getRGBComponents(bgColor);
var bgDelta = (components.R * 0.299) + (components.G * 0.587) + (components.B * 0.114);
return ((255 - bgDelta) < nThreshold) ? "#000000" : "#ffffff";
}
function getRGBComponents(color) {
var r = color.substring(1, 3);
var g = color.substring(3, 5);
var b = color.substring(5, 7);
return {
R: parseInt(r, 16),
G: parseInt(g, 16),
B: parseInt(b, 16)
};
}
Run Code Online (Sandbox Code Playgroud)