【发布时间】:2012-08-04 15:57:59
【问题描述】:
我希望用户能够从 1 到 100 的范围内进行选择,其中当数字小于 50 时,该区域的颜色会变为深绿色,当颜色接近 100 时,颜色变得更红了。
我正在努力使范围越靠近中心,颜色应该接近白色(其中 50 = 全白)。
我从这里尝试了答案:Generate colors between red and green for a power meter? 无济于事.... 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 组合,但我似乎真的无法做到。
【问题讨论】:
-
@Jean-FrançoisCorbett 你到底是什么意思?
标签: javascript colors range interpolation