此函数允许您以编程方式使十六进制颜色变亮或变暗特定量。只需传入一个字符串(如“3F6D2A”)作为颜色,并传入一个整数 amt 来表示变亮或变暗的量。要变暗,请传入负数(例如 -20)。
function LightenDarkenColor(col, amt) {
col = parseInt(col, 16);
return (((col & 0x0000FF) amt) | ((((col >> 8) & 0x00FF) amt) > 16) amt) 其他版本
更快更小的版本:
function LightenDarkenColor(col, amt) {
var num = parseInt(col, 16);
var r = (num >> 16) amt;
var b = ((num >> 8) & 0x00FF) amt;
var g = (num & 0x0000FF) amt;
var newColor = g | (b 处理带或不带#前缀的颜色:
function LightenDarkenColor(col, amt) {
var usePound = false;
if ( col[0] == "#" ) {
col = col.slice(1);
usePound = true;
}
var num = parseInt(col, 16);
var r = (num >> 16) amt;
if ( r > 255 ) r = 255;
else if (r > 8) & 0x00FF) amt;
if ( b > 255 ) b = 255;
else if (b 255 ) g = 255;
else if ( g 用法
要使用该函数,只需传入要变亮或变暗的十六进制颜色字符串以及要调整的量。例如,以下代码将颜色“3F6D2A”变亮 40:
const lightenedColor = LightenDarkenColor("3F6D2A", 40);
console.log(`Lightened Color: ${lightenedColor}`); // Output: 7FADEE
性能
该函数的性能针对速度和大小进行了优化。它使用按位运算来操纵颜色值,这使得速度非常快。该函数也非常小,非常适合小型应用程序。
功能
- 将十六进制颜色变亮或变暗指定量
- 处理颜色带或不带 # 前缀
- 调整不正确的颜色值
- 返回新颜色值的十六进制字符串表示形式颜色
限制
- 该函数不会将颜色转换为HSL以正确地使颜色变亮或变暗。因此,结果可能与使用 HSL 的函数不同。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3