我需要获取现有颜色十六进制的50%浅色版本的颜色值。但是它必须是100%不透明的,我不能使用opacity
,rgba
,hexa
或hsla
。
场景:
我基于48个可能的十六进制值的硬编码数组在地图上绘制路线,每个路线都有不同的颜色。
当编辑这些路径之一时,应显示为“禁用”(原始颜色的50%。)>
在屏幕设计中,对于路线颜色(阵列中的一种颜色),参考值为#9775fa
;对于disabled
#d5c7fd
。通过设计师在基础颜色之上绘制具有50%不透明度的白色层来获得第二种颜色。我试图通过JS获得相同的值,首先使用lighten函数,然后使用HSL函数,最后手动对基础颜色的每个RGB值进行光照。他们没有一个真正起作用。
使用减光,加上62的光,我得到了接近的价值,但不是精确的值。手动使用HSL并以50%减亮效果也不起作用。
这些是我得到的值:
Base color: #9775fa "Disabled color": #d5c7fd Lighten by 62: #d5b3ff HSL 50%: #e3b0ff Ligheting 50% by hand: #e3b0ff
所以,最后,真正的问题是,是否有可能实现?
Here is a "playground" and the full code of my experiments(第二列是参考“ disabled”
颜色。非常感谢!
我需要获取现有颜色十六进制的50%浅色版本的颜色值。但是它必须是100%不透明的,我不能使用不透明度,rgba,hexa或hsla。场景:我在地图上绘制路线,...
我设法通过按给定百分比将颜色与白色混合来获得更准确的结果。