我正在尝试使用 JavaScript 获取互补色,但找不到我需要的东西。我看了here ,但对于像 #000000
和 #142814
这样的值,它们只是返回自身。对于第一个值,我觉得获取 #FFFFFF
是有意义的。有没有一个函数可以像这样工作?
最佳答案
您可以使用 224 - 1 和颜色值的差值,对于较短的颜色,可以使用 212 - 1 和颜色值的差值.
function getComplementaryColor(color) {
var c = color.slice(1),
i = parseInt(c, 16),
v = ((1 << 4 * c.length) - 1 - i).toString(16);
while (v.length < c.length) {
v = '0' + v;
}
return '#' + v;
}
console.log(getComplementaryColor('#142814'));
console.log(getComplementaryColor('#000000'));
console.log(getComplementaryColor('#111111'));
console.log(getComplementaryColor('#ffffff'));
console.log(getComplementaryColor('#39f'));
console.log(getComplementaryColor('#000'));
console.log(getComplementaryColor('#111'));
console.log(getComplementaryColor('#fff'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于JavaScript 互补色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061256/