颜色工具函数
颜色转换
import { normal } from 'color-blend'
/**
* @description 将16进制色号转换成rgb:{r,g,b,a}
* @param {string} color
* @param {float} Alpha
* @return {object}
*/
function colorRgbObj(color, Alpha = 1) {
color = color.toLowerCase()
var pattern = /^#([0-9|a-f]{3}|[0-9|a-f]{6})$/u
if (color && pattern.test(color)) {
// 处理六位的颜色值
var colorNew = []
for (var i = 1; i < 7; i += 2) {
colorNew.push(parseInt('0x' + color.slice(i, i + 2)))
}
return { r: colorNew[0], g: colorNew[1], b: colorNew[2], a: Alpha }
}
return color
}
/**
* scss mix 函数
* @param {string} colorA 16进制色号
* @param {string} colorB 16进制色号
* @param {*} Alpha
* @returns rgba
*/
export function colorMixer(colorA, colorB, Alpha) {
var rgbA = colorRgbObj(colorA, 1 - Alpha)
var rgbB = colorRgbObj(colorB, 1 - Alpha)
const { r, g, b, a } = normal(rgbA, rgbB)
return `rgba(${r},${g},${b},${a})`
}
/**
* @description 将16进制色号转换成rgba
* @param {string} color
* @param {float} Alpha
* @return {string}
*/
export function colorRgb(color, Alpha = 1) {
color = color.toLowerCase()
var pattern = /^#([0-9|a-f]{3}|[0-9|a-f]{6})$/u
if (color && pattern.test(color)) {
if (color.length === 4) {
// 将三位转换为六位
color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]
}
// 处理六位的颜色值
var colorNew = []
for (var i = 1; i < 7; i += 2) {
colorNew.push(parseInt('0x' + color.slice(i, i + 2)))
}
return `RGBA(${colorNew.join(',')} , ${Alpha})`
}
return color
}
分类:
JavaScript
, 常用工具函数
标签:
JavaScript
, 工具函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构