当前位置:首页 > JavaScript

js实现颜色

2026-02-01 00:14:05JavaScript

颜色表示方法

在JavaScript中,颜色可以通过多种方式表示,包括十六进制、RGB、RGBA、HSL和HSLA等格式。

十六进制格式:

const hexColor = '#FF5733';

RGB格式:

const rgbColor = 'rgb(255, 87, 51)';

RGBA格式(带透明度):

const rgbaColor = 'rgba(255, 87, 51, 0.5)';

HSL格式:

const hslColor = 'hsl(12, 100%, 60%)';

HSLA格式(带透明度):

const hslaColor = 'hsla(12, 100%, 60%, 0.5)';

颜色转换

将RGB转换为十六进制:

function rgbToHex(r, g, b) {
    return '#' + [r, g, b].map(x => x.toString(16).padStart(2, '0')).join('');
}

将十六进制转换为RGB:

function hexToRgb(hex) {
    const r = parseInt(hex.slice(1, 3), 16);
    const g = parseInt(hex.slice(3, 5), 16);
    const b = parseInt(hex.slice(5, 7), 16);
    return { r, g, b };
}

随机颜色生成

生成随机十六进制颜色:

function randomHexColor() {
    return '#' + Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0');
}

生成随机RGB颜色:

function randomRgbColor() {
    const r = Math.floor(Math.random() * 256);
    const g = Math.floor(Math.random() * 256);
    const b = Math.floor(Math.random() * 256);
    return `rgb(${r}, ${g}, ${b})`;
}

颜色操作

调整颜色亮度:

function adjustBrightness(hex, percent) {
    const { r, g, b } = hexToRgb(hex);
    const adjust = (value) => Math.min(255, Math.max(0, value + Math.round(255 * (percent / 100))));
    return rgbToHex(adjust(r), adjust(g), adjust(b));
}

混合两种颜色:

function blendColors(color1, color2, ratio) {
    const c1 = hexToRgb(color1);
    const c2 = hexToRgb(color2);
    const r = Math.round(c1.r * ratio + c2.r * (1 - ratio));
    const g = Math.round(c1.g * ratio + c2.g * (1 - ratio));
    const b = Math.round(c1.b * ratio + c2.b * (1 - ratio));
    return rgbToHex(r, g, b);
}

颜色验证

验证是否为有效十六进制颜色:

function isValidHexColor(hex) {
    return /^#([0-9A-F]{3}){1,2}$/i.test(hex);
}

验证是否为有效RGB颜色:

function isValidRgbColor(rgb) {
    return /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/.test(rgb);
}

颜色名称映射

将颜色名称映射为十六进制值:

const colorNameToHex = {
    'red': '#FF0000',
    'green': '#00FF00',
    'blue': '#0000FF',
    'black': '#000000',
    'white': '#FFFFFF'
};

获取颜色名称对应的十六进制值:

function getHexFromName(colorName) {
    return colorNameToHex[colorName.toLowerCase()] || null;
}

js实现颜色

标签: 颜色js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML…