彩色地图在100%的情况下不工作
color map not working in the case of 100% percent
我有这个很棒的代码
var percentColors = [
{ pct: 0.0, color: { r: 0xff, g: 0x00, b: 0 } },
{ pct: 0.5, color: { r: 0xff, g: 0xff, b: 0 } },
{ pct: 1.0, color: { r: 0x00, g: 0xff, b: 0 } } ];
var getColorForPercentage = function(pct) {
for (var i = 0; i < percentColors.length; i++) {
if (pct < percentColors[i].pct) {
var lower = percentColors[i - 1];
var upper = percentColors[i];
var range = upper.pct - lower.pct;
var rangePct = (pct - lower.pct) / range;
var pctLower = 1 - rangePct;
var pctUpper = rangePct;
var color = {
r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),
g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),
b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)
};
return 'rgb(' + [color.r, color.g, color.b].join(',') + ')';
// or output as hex if preferred
}
}
}
当我使用
alert(getColorForPercentage(90/100));//red
或
alert(getColorForPercentage(0/100));//green
但当
alert(getColorForPercentage(100/100));
应该显示完整的红色但是它显示的是undefined
变化:
if (pct < percentColors[i].pct) {
if (pct <= percentColors[i].pct) {
因为代码是1 < 1.0 // false
替换for语句,key change: var lower = percentColors[i - 1] || {pct:0};
for (var i = 0; i < percentColors.length; i++) {
if (pct <= percentColors[i].pct) {
var lower = percentColors[i - 1] || { pct: 0.1, color: { r: 0x0, g: 0x00, b: 0 } };
var upper = percentColors[i];
var range = upper.pct - lower.pct;
var rangePct = (pct - lower.pct) / range;
var pctLower = 1 - rangePct;
var pctUpper = rangePct;
var color = {
r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),
g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),
b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)
};
return 'rgb(' + [color.r, color.g, color.b].join(',') + ')';
// or output as hex if preferred
}
}
相关文章:
- JavaScript while循环没有'不能在有条件的情况下工作
- 如何使html链接标签可以在没有标签的情况下工作
- Javascript变量在没有var的情况下工作
- 有没有一种方法可以让jQuery日期选择器在没有年份的情况下工作
- 窗口clearInterval()在没有参数的情况下工作
- 如何使HTML5在没有JS或Jquery的情况下工作
- 复选框检查器在表中不起作用.代码在没有表标记的情况下工作
- 让脚本在没有 .text 的情况下工作
- 我如何让这个 JavaScript 数字猜谜游戏在没有“while”或“for”循环的情况下工作
- 可以't使jQuery Sortable在没有列的情况下工作
- Facebook javascript sdk在没有ssl的情况下工作
- jQuery插件可以在没有元素的情况下工作
- Z索引无法在位置固定的情况下工作
- Chai这样的断言库如何在不强制调用函数的情况下工作
- google驱动器api-copyfile仅在具有访问驱动器中所有文件的权限的情况下工作(但jst需要复制)
- Javascript-目标DOM在一种情况下工作,而不是在另一种情况
- 使提交表单在不重定向或刷新的情况下工作
- .click函数在没有参数的情况下工作,但不使用参数
- 在IE中获得插入符号位置在一种情况下工作,在另一种情况下不工作
- 重定向到时找不到子路由,但在其他情况下工作正常