当前位置:首页 > 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转换为十六进制:

js实现颜色

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})`;
}

颜色操作

调整颜色亮度:

js实现颜色

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
分享给朋友:

相关文章

vue实现颜色

vue实现颜色

Vue 实现颜色的方法 在 Vue 中实现颜色管理或颜色选择功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS 变量动态绑定颜色 Vue 支持通过 v-bind 动态绑定 CSS 变量,…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…