JavaScript 实现颜色明暗调整:获取更亮或更暗颜色值

作者:半夏时间:2026-10-22 06:12:12浏览:199

本文介绍在 JavaScript 中实现颜色明暗调整的方法。通过解析十六进制颜色值,分离红绿蓝通道并增减指定数值,最后重新组合返回新的颜色字符串。该方法无需预处理工具,可直接在代码中动态生成更亮或更暗的颜色值,适用于前端样式动态调整场景。

JavaScript 颜色明暗调整实现

前言

本文主要介绍如何利用 JavaScript 获取任意颜色的更亮或更暗颜色值。接下来将详细展开具体实现方式。

在 CSS 预处理语言如 Sass 或 Less 中,可以通过设定特定参数让颜色变亮或变暗。然而,原生 JavaScript 并未直接提供此类功能。下面介绍一种方法,通过给定的十六进制颜色值(例如 #F06D06 或不含 # 的形式),在 JavaScript 中计算出对应的更亮或更暗的颜色值。

示例代码


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 < 0) r = 0;
 
 var b = ((num >> 8) & 0x00FF) + amt;
 
 if (b > 255) b = 255;
 else if (b < 0) b = 0;
 
 var g = (num & 0x0000FF) + amt;
 
 if (g > 255) g = 255;
 else if (g < 0) g = 0;
 
 return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
 
}

// Lighten
var NewColor = LightenDarkenColor("#F06D06", 20); 

// Darken
var NewColor = LightenDarkenColor("#F06D06", -20); 

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对本站的支持。

作者最新文章