2012-03-30 59 views
0

如何根据百分比值计算从蓝色到浅蓝灰度的div bg颜色?恩。如果该值等于100%,则div的bg颜色为#0000FF;如果该值等于50%,则为浅蓝色;如果该值等于0,则bg颜色为灰色。蓝色到灰色在javascript中计算CSS颜色

对此有没有算法的工作?

感谢您的任何帮助。

+0

你可以看看这个问题,它使用数学来确定与权重因子混合在一起的两个RGB颜色的正确的颜色:http://stackoverflow.com/a/1892036/420001 – Josh 2012-03-30 03:34:15

回答

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) 
    }; 
} 

Here's a demo.

-2

你可以做一个JSON对象,并直接引用它,而改变颜色

var colorMap = new Object(); 
colorMap["100%"] = "#0000FF"; 
colorMap["50%"] = "lightBlue"; 
colorMap["0%"] = "gray"; 

然后用这张地图whenevr你改回来底色

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

做什么你真的想要吗? – 2012-03-30 03:57:33