当前位置:首页 > 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'
};

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

js实现颜色

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

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

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…