可能是重复问题:
基于数字的颜色编码
我希望用户可以从1-100的范围内进行选择,当数字小于50时,区域的颜色变得更深绿,而随着数字接近100,颜色则变成更接近红色。
我试图让当数值趋向于中心时,颜色应该接近白色(其中50=全白)。
我尝试了这里的答案:如何生成在红色和绿色之间的颜色来表示功率?,但没有成功... 50最终变成了一种混淆的绿色...
以下是我的HTML代码:
<span><span class="value">50</span><input type="range" /></span>
以下是JavaScript代码:
$(document).on({
change: function(e) {
var self = this,
span = $(self).parent("span"),
val = parseInt(self.value);
if (val > 100) {
val = 100;
}
else if (val < 0) {
val = 0;
}
$(".value", span).text(val);
var r = Math.floor((255 * val) / 100),
g = Math.floor((255 * (100 - val)) / 100),
b = 0;
span.css({
backgroundColor: "rgb(" + r + "," + g + "," + b + ")"
});
}
}, "input[type='range']");
示例代码:http://jsfiddle.net/maniator/tKrM9/1/
我已经尝试了许多不同的 r、g、b 组合,但似乎总是得不到正确的结果。