如何在JavaScript中获得渐变色(基于值的3种颜色)的十六进制代码
我正试图得到十六进制代码在3个混合颜色的基础上的价值观 例子:如何在JavaScript中获得渐变色(基于值的3种颜色)的十六进制代码,javascript,css,colors,gradient,Javascript,Css,Colors,Gradient,我正试图得到十六进制代码在3个混合颜色的基础上的价值观 例子: 开始-FF0000(红色) 中间-#FFFF00(黄色) 结束-008000(绿色) 如果该值为: 1-十六进制代码为#FF0000 50-十六进制代码为#FFFF00 100-十六进制代码是#008000 在值之间,例如,1-50十六进制代码应与红黄色混合 50-100十六进制代码与黄绿色混合,基于值增加 我怎样才能做到这一点呢?试试看 功能更改(e){ box.style.background=gradient(e.targe
#FFFF00
(黄色)008000
(绿色)#FF0000
50-十六进制代码为#FFFF00
100-十六进制代码是#008000
在值之间,例如,1-50十六进制代码应与红黄色混合
50-100十六进制代码与黄绿色混合,基于值增加
我怎样才能做到这一点呢?试试看
功能更改(e){
box.style.background=gradient(e.target.value/100、#FF0000’、#FFFF00’、#008000’);
}
//在ragne 0..1中,起始中间端为十六进制颜色,例如#FF00FF
函数梯度(t,开始,中间,结束){
返回t>=0.5线性(中间,结束,(t-.5)*2):线性(开始,中间,t*2);
}
线性函数(s、e、x){
设r=byteLinear(s[1]+s[2],e[1]+e[2],x);
设g=byteLinear(s[3]+s[4],e[3]+e[4],x);
设b=byteLinear(s[5]+s[6],e[5]+e[6],x);
返回“#”+r+g+b;
}
//a、b是从00到FF的十六进制值;x是范围为0..1的实数
函数byteLinear(a,b,x){
设y=('0x'+a)*(1-x)+('0x'+b)*x)|0;
返回y.toString(16).padStart(2,'0')//十六进制输出
}
#方框{宽度:50px;高度:50px;背景:FF0000}
尝试了链接中的内容,但没有找到任何内容。请展示您尝试使用该功能的情况,并解释它是如何失败的,因为根据您的描述,当前的答案也是您问题的正确答案。