在javascript中计算蓝色到灰色CSS颜色

在javascript中计算蓝色到灰色CSS颜色,javascript,css,colors,graph-algorithm,Javascript,Css,Colors,Graph Algorithm,如何根据百分比值计算从蓝色到浅蓝色再到灰色的div bg颜色?例如,如果该值等于100%,则div的背景颜色为#0000FF;如果值等于50%,则为浅蓝色;如果该值等于0,则bg颜色为灰色 有没有一个算法可以解决这个问题 谢谢您的帮助。首先,您需要RGB格式的十六进制值。为此,您可以使用此功能: function hexToRgb(hex) { return { r: parseInt(hex.substring(1, 3), 16), g: parseI

如何根据百分比值计算从蓝色到浅蓝色再到灰色的div bg颜色?例如,如果该值等于100%,则div的背景颜色为
#0000FF
;如果值等于50%,则为浅蓝色;如果该值等于0,则bg颜色为灰色

有没有一个算法可以解决这个问题


谢谢您的帮助。

首先,您需要RGB格式的十六进制值。为此,您可以使用此功能:

function hexToRgb(hex) {
    return {
        r: parseInt(hex.substring(1, 3), 16),
        g: parseInt(hex.substring(3, 5), 16),
        b: parseInt(hex.substring(5, 7), 16)
    };
}
然后,只需将权重应用于每个组件:

function blendColors(colorA, colorB, weight) {
    return {
        r: Math.floor(colorA.r * (1 - weight) + colorB.r * weight),
        g: Math.floor(colorA.g * (1 - weight) + colorB.g * weight),
        b: Math.floor(colorA.b * (1 - weight) + colorB.b * weight)
    };
}

您可以创建一个json对象,并在更改颜色时直接引用它

var colorMap = new Object();
colorMap["100%"] = "#0000FF";
colorMap["50%"] = "lightBlue";
colorMap["0%"] = "gray";
然后在更改背景颜色时使用此贴图

var percentageValue = '100%'; //you can pass this value inside a function also
document.getElementById("obj").style.background-color=colorMap[percentageValue];

您可以检查这个问题,它使用数学来确定两种RGB颜色与权重因子混合在一起的正确颜色: