几个数字之间的Javascript十六进制数插值

Cyc*_*one 2 javascript

我正在为我的网站创建一个"剩余字符"类型计数器,并且我正在尝试获得平滑的颜色过渡.

如果我传递最大数字(在本例中为300)和当前字符计数(假设模式为绿色,黄色,橙色,红色),我将如何创建一个函数来获取颜色的十六进制值?

这是在Javascript中.这是我到目前为止:

function commentcounter(val) {
max = 300;
if(val >= max){
    color = '#FF0000';
}else if(val > (max / 2)){
    color = '#FF9900';
}else{
    color = '#00FF00';
}
display = '<span style="color:' + color + '">' + val + '/' + max + '</span>';
document.getElementById('counter').innerHTML = display;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这并不是真正的插值,只是从绿色到橙色再到红色.

SLa*_*aks 5

您需要从0到255单独插入每个颜色分量(反之亦然).
如果您使用,这将更容易color: rgb(0, 255, 0).