如何根据百分比值计算从蓝色到浅蓝色到灰色的div bg颜色?恩。如果该值等于100%,则div的bg颜色为#0000FF
;如果该值等于50%,则为淡蓝色;如果值等于0,则bg颜色为灰色。
是否有算法可以解决这个问题?
感谢您的帮助。
答案 0 :(得分:2)
首先,您需要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)
};
}
答案 1 :(得分:-2)
您可以制作一个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];