首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从梯度映射数字特定颜色

如何从梯度映射数字特定颜色
EN

Stack Overflow用户
提问于 2014-11-10 21:44:11
回答 1查看 687关注 0票数 1

假设我有一个div,有一个平滑的线性梯度(从左到右)背景,从绿色到红色,给出一个介于0到1之间的数字,我想知道从左到右的特定颜色。

IE0将映射为绿色,1将映射为红色。.5将映射到带红色的绿色中间等,因此这样一个函数的返回将是颜色表示(例如十六进制,rgba)。

我不知道如何在div中得到特定背景点的颜色。如果我能搞清楚的话我想我会没事的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 22:22:44

如果你能把十六进制转换成整数,我想你应该可以得到2种颜色之间的平均数。假设你已经有了颜色代码绿色:#33FF33红色:# you 0000

代码语言:javascript
复制
function ConvertToInt(colorHex){
    if(colorHex.length != 6){return 0;}
    var R = colorHex.substring(0,2);
    var G = colorHex.substring(2,4);
    var B = colorHex.substring(4,6);

    return [parseInt(R,16),parseInt(G,16),parseInt(B,16)];
}

然后为您的两种颜色调用此函数,为您提供一个ints数组。

代码语言:javascript
复制
function GetColorAtPos(color1,color2,position){
    color1Multiplier = position;
    color2Multiplier = 1-position;
    finalRGB = [];
    for(i =0;i<=2;i++){ 
        finalRGB.push(parseInt((color1[i] * color1Multiplier) + (color2[i] * color2Multiplier)))
    }
     return finalRGB
}

这应该会返回平均颜色。

如果你可以张贴一个元素的背景值,我可以张贴颜色的选择。

这就是你所说的GetColorAtPos(ConvertToInt("FFFFFF"), ConvertToInt("000000"), .5)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26853533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档