vue实现把Ox格式颜色值转换成rgb渐变颜色值(开箱即用)

本文详细介绍了Vue原型上的颜色转换函数$convertToHex,用于在两种十六进制颜色之间进行插值计算,并提到了如何在面试中处理算法问题和准备工作。作者强调了理解代码细节和准备的重要性。
摘要由CSDN通过智能技术生成

Vue.prototype.$convertToHex = function (colorCode1, colorCode2, amount) {
// 确保输入是字符串,并检查是否以’0x’开头
let newCode1 = ‘’
let newCode2 = ‘’
if (typeof colorCode1 === ‘string’ && colorCode1.startsWith(‘0x’)) {
// 移除’0x’前缀并返回新的十六进制字符串 // 从索引2开始取子串(跳过’0x’)
newCode1 = ‘#’ + colorCode1.substring(2)
}
if (typeof colorCode2 === ‘string’ && colorCode2.startsWith(‘0x’)) {
// 移除’0x’前缀并返回新的十六进制字符串 // 从索引2开始取子串(跳过’0x’)
newCode2 = ‘#’ + colorCode2.substring(2)
}
// 将颜色字符串转换为RGB对象
let rgb1 = {
r: parseInt(newCode1.substring(1, 3), 16),
g: parseInt(newCode1.substring(3, 5), 16),
b: parseInt(newCode1.substring(5, 7), 16)
};
let rgb2 = {
r: parseInt(newCode2.substring(1, 3), 16),
g: parseInt(newCode2.substring(3, 5), 16),
b: parseInt(newCode2.substring(5, 7), 16)
};

// 插值计算
let r = Math.round(rgb1.r + (rgb2.r - rgb1.r) * amount);
let g = Math.round(rgb1.g + (rgb2.g - rgb1.g) * amount);
let b = Math.round(rgb1.b + (rgb2.b - rgb1.b) * amount);
let colorRGB = `rgb(${r},${g},${b})`
return colorRGB

}


### 使用方法:



let colorCode1 = “0x00FF2F”
let colorCode2 = “0xFEA90B”
let amount = 0.6 // 插值
console.log(‘获取到的rgb格式颜色值’, this.$convertToHex(colorCode1,colorCode2,amount))


### 案例(根据温度值数字算渐变值):



//0x格式颜色值
let gradientObj={
16: “0x00FF2F”,
32: “0xFEA90B”,
36: “0xFF3300”,
-40: “0x061BFC”,
}
//判断数字是否小于等于对象的key值,相同就拿出对应的value值,并返回当前的rgb值
changeBgColor(num) {
let colorCode1 = ‘’
let colorCode2 = ‘’
let amount = 1
let keys = Object.keys(this.gradientData)
keys.sort((a, b) => {
return a - b;
});
if (num <= parseInt(keys[0])) {
colorCode1 = this.gradientData[keys[0]]
colorCode2 = this.gradientData[keys[0]]
} else if (num >= parseInt(keys[keys.length - 1])) {
colorCode1 = this.gradientData[keys[keys.length - 1]]

总结

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值