简介
在本实验中,我们将探索如何使用 JavaScript 将十六进制颜色代码转换为 rgb() 或 rgba() 字符串。我们将学习如何使用按位运算符和掩码从十六进制代码中提取 RGB 值。本实验还将介绍如何处理 3 位和 6 位十六进制代码,以及如何将 alpha 值合并到结果字符串中。
在本实验中,我们将探索如何使用 JavaScript 将十六进制颜色代码转换为 rgb() 或 rgba() 字符串。我们将学习如何使用按位运算符和掩码从十六进制代码中提取 RGB 值。本实验还将介绍如何处理 3 位和 6 位十六进制代码,以及如何将 alpha 值合并到结果字符串中。
要将十六进制颜色代码(带或不带 # 前缀)转换为 RGB 字符串,请遵循以下步骤:
node 以开始练习编码。&(与)运算符屏蔽位。rgba() 字符串。以下是转换的 JavaScript 代码:
const hexToRGB = (hex) => {
let alpha = false,
h = hex.slice(hex.startsWith("#") ? 1 : 0);
if (h.length === 3) h = [...h].map((x) => x + x).join("");
else if (h.length === 8) alpha = true;
h = parseInt(h, 16);
return (
"rgb" +
(alpha ? "a" : "") +
"(" +
(h >>> (alpha ? 24 : 16)) +
", " +
((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) +
", " +
((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) +
(alpha ? `, ${h & 0x000000ff}` : "") +
")"
);
};
你可以使用以下示例调用 hexToRGB 函数:
hexToRGB("#27ae60ff"); // 'rgba(39, 174, 96, 255)'
hexToRGB("27ae60"); // 'rgb(39, 174, 96)'
hexToRGB("#fff"); // 'rgb(255, 255, 255)'
恭喜你!你已经完成了十六进制转 RGB 实验。你可以在 LabEx 中练习更多实验来提升你的技能。