为输入范围生成红色和绿色之间的颜色[重复]

2024-03-23

可能的重复:
基于数字的颜色编码 https://stackoverflow.com/questions/5533297/color-coding-based-on-number

我希望用户能够从 1-100 的范围内进行选择,其中当数字小于 50 时,该区域的颜色变得更深绿色,当颜色变得接近 100 时,颜色变得更红色。

我试图使其范围更接近中心,颜色应该接近白色(其中 50 = 全白色)。

我尝试了这里的答案:为功率计生成红色和绿色之间的颜色? https://stackoverflow.com/q/340209/561731无济于事....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']");​

Fiddle: http://jsfiddle.net/maniator/tKrM9/1/ http://jsfiddle.net/maniator/tKrM9/1/

我尝试了许多不同的 r、g、b 组合,但我似乎真的无法做到正确。


由于在 RBG 空间中创建渐变的方式,您会得到混乱的绿色。要获得“更干净”的梯度,您可以使用提到的 HSV 模型在您链接到的问题的答案中 https://stackoverflow.com/questions/340209/generate-colors-between-red-and-green-for-a-power-meter/340214#340214.

RGB gradient (top) vs HSV (bottom) top gradient uses RGB, bottom uses HSV

通过在 0(红色)和 120(绿色)之间缩放 H(色调)值,您将获得漂亮干净的过渡。然而,在中间点 (60),您最终会得到亮黄色,而不是您想要的白色。您可以通过修改 S(饱和度)值来解决这个问题 - 在 0 饱和度时,您最终会得到白色(1 给您全色饱和度。

下面是一个粗略的示例,当输入值从 0 到 50 再到 100 时,饱和度从 1 缩放到 0,然后又回到 1 -http://jsfiddle.net/xgJ2e/2/ http://jsfiddle.net/xgJ2e/2/

var hue = Math.floor((100 - val) * 120 / 100);  // go from green to red
var saturation = Math.abs(val - 50)/50;   // fade to white as it approaches 50

附注颜色模型之间的转换很容易使用jquery 颜色 https://github.com/Enideo/jquery-colors,尽管自己推出并不难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为输入范围生成红色和绿色之间的颜色[重复] 的相关文章

随机推荐

  • URL 中带有斜杠“/”的路由参数

    我知道您可以在路由属性中应用通配符以允许 例如日期输入例如 Route orders orderdate 通配符的问题仅适用于 URI 中的最后一个参数 如果想要具有以下 URI 我该如何解决该问题 Route orders orderda
  • C#:WebRequest 代理 = null 副作用

    有谁知道吃药有什么副作用吗webrequest proxy null在 HttpWebRequest 中 MSDN NET Framework 4 说要使用GlobalProxySelection GetEmptyWebProxy 当不应该
  • 这应该是这样的吗?

    我的服务器上有这段代码here http smplsite com sandbox2 process asmx 是的 我知道 ASMX 是一个坏主意 但 WCF 由于某种原因根本不起作用 using System Web using Sys
  • 通过 Drupal 执行查询时 Apache Solr 结果不同 – 为什么?

    我正在尝试创建一个自定义搜索界面阿帕奇 索尔 http lucene apache org solr using Drupal http drupal org 我对结果有一些奇怪的问题 当我从 Solr 的内置 Web 界面运行它时 相同的
  • Magento - 客户地址国家/地区下拉列表问题

    我正在使用 Magento CE 1 7 0 2 最近从 1 4 2 0 升级 在后端编辑 创建客户地址时 国家 地区下拉字段为空 无法选择任何选项 它也不适用于前端地址下拉列表 任何想法导致此问题 我能找到的唯一代码提示是 this de
  • C# 中套接字重用有什么好处

    我正在开发开源套接字服务器库 https sourceforge net projects socketservers https sourceforge net projects socketservers 我想向这个库添加套接字重用功能
  • Android 的新 Jack 编译器真的那么慢吗?

    在我的一些 Android 项目中 我发现自从使用新的 Jack 编译器以来 构建速度变得相当慢 我需要它来使用 lambda 等 Java 8 功能 但漫长的建设时间有点令人不安 所以我建立了一个新的Android项目 它只包含一个Mai
  • 在内存中强制渲染 WPF 控件

    我有以下代码 void Test currentImage Source GetBitmap RenderTargetBitmap rtb new RenderTargetBitmap 100 100 96 0 96 0 PixelForm
  • EMR 5.21、Spark 2.4 - Json4s 依赖关系已损坏

    Issue 在 EMR 5 21 中 Spark Hbase 集成已损坏 df write options format save 失败 原因是 Spark 2 4 中的 json4s jackson 版本 3 5 3 EMR 5 21它在
  • 使用 pytest 运行trace.py

    我正在尝试使用trace py跑步时pytest 我知道pytest有自己的覆盖率插件pytest cov但限制 每行执行的次数不可用 不允许我现在使用它 同样对于coverage py 我正在尝试这个命令 python3 4 m trac
  • 使用 WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH 获取所有 MotionEvent

    我的问题直接涉及到这个question https stackoverflow com q 4481226 394933 这个问题的答案表明了如何创建一个ViewGroup 将其嵌入到WindowManager 并允许WindowManag
  • Asp.net 自动完成扩展器不工作

    我想让文本框使用数据库自 动完成 我使用了以下代码 但在输出扩展器中显示了 html 代码 它甚至不执行函数后面的代码 我使用的以下代码无法正常工作 ASPx 页面
  • 如果项目存在于另一个数组中,则从数组中删除它们[重复]

    这个问题在这里已经有答案了 假设我有以下两个包含整数的 PHP 数组 foo array 1 5 9 14 23 31 45 bar array 14 31 36 我想删除其中的项目 foo其中存在相同的值 bar 所以这个过程的结果将创建
  • Wix引导程序

    我使用 WPF 编写了一个托管 wix 引导程序 实际的安装步骤需要链接多个 msi exe 和批处理文件
  • 最终方法是内联的吗?

    Java的final方法会自动内联吗 很多书说可以 很多书说不 方法的内联由 JIT 编译器执行 而不是 javac 现代 JIT 编译器 包括 Hotspot 通常甚至可以内联非最终方法 并在必要时适当地 撤消 优化 他们基本上非常聪明
  • python 中具有等式约束的 L1 凸优化

    我需要在 Mx y 的情况下最小化 L 1 x x 是维度为 b 的向量 y 是维度为 a 的向量 M 是维度为 a b 的矩阵 经过一番阅读后 我决定使用 scipy optimize minimize import numpy as n
  • 将 AWS Chime 集成到 Java 应用程序中

    我正在尝试构建一个 Java Spring 启动应用程序 用于使用 AWS Chime 创建 加入和聊天 我已经浏览了 chime 提供的演示代码 但由 node js 运行 任何人都可以帮助我如何使用 mvc 集成和使用 chime 的
  • 使图像完全填充div而不拉伸

    我有不同尺寸的大图像 需要在两个尺寸上完全填充 240 像素 x 300 像素的容器 这是我现在得到的 仅适用于一维 http jsfiddle net HsE6H http jsfiddle net HsE6H HTML div clas
  • SVG 异物大小不一致

    我正在尝试在 SVG 中创建 2 个 html 对象 并在 Vis js 图表中进一步使用它们 我的第一个 svg 按钮 按预期工作并且看起来不错 我的问题是 当我尝试插入表格 div 时 宽度 高度不是我设置的值 这是我得到的 正如您所看
  • 为输入范围生成红色和绿色之间的颜色[重复]

    这个问题在这里已经有答案了 可能的重复 基于数字的颜色编码 https stackoverflow com questions 5533297 color coding based on number 我希望用户能够从 1 100 的范围内