如何解决Javascript文本对比调色板材质io
我正在使用材料 io 调色板中的颜色,link。
我需要使用文本对比度来计算我可以在文本上使用的颜色。
我正在使用 getContrastYIQ
函数来确定您是否应该使用 white or black
,但在我的情况下它似乎无法正常工作,它总是返回 white
。>
你能帮我一把吗?
const hexToRgb = (hex,obj = false) => {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
const [,r,g,b] = result;
const convert = (a) => parseInt(a,16);
return result
? !obj
? `rgb(${convert(r)},${convert(g)},${convert(b)})`
: {
r,b
}
: null;
};
const getContrastYIQ = (hex) => {
const { r,b } = hexToRgb(hex,true);
return (r * 299 + g * 587 + b * 114) / 1000 >= 128 ? "#000000" : "#FFFFFF";
};
console.log(getContrastYIQ("#90caf9")) //#fff -> #000(return value function,expectation)
console.log(getContrastYIQ("#81d4fa")) //#fff -> #000
console.log(getContrastYIQ("#80deea")) //#fff -> #000
console.log(getContrastYIQ("#1976d2")) //#fff -> #fff
编辑问题已解决:
const hexToRgb = (hex,${convert(b)})`
: {
r: convert(r),g: convert(g),b: convert(b)
}
: null;
};
const getContrastYIQ = (hex) => {
const { r,expectation)
console.log(getContrastYIQ("#81d4fa")) //#fff -> #000
console.log(getContrastYIQ("#80deea")) //#fff -> #000
console.log(getContrastYIQ("#1976d2")) //#fff -> #fff
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。