Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据在以前的输入中输入的HexColor,自动将输入更新为较暗的HexColor_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 根据在以前的输入中输入的HexColor,自动将输入更新为较暗的HexColor

Javascript 根据在以前的输入中输入的HexColor,自动将输入更新为较暗的HexColor,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,以下是我希望最终产品能起到的作用。假设我有两个输入: <form id="builder"/> <input type="text" name="background_color" /> <input type="text" name="border_color" /> </form> 假设用户在“背景颜色”输入中输入此十六进制颜色代码:\FF8CA9(浅粉色)。我想在“border_color”输入中自动添加此颜色十六进制代码的较暗色调:比

以下是我希望最终产品能起到的作用。假设我有两个输入:

<form id="builder"/>
<input type="text" name="background_color" />
<input type="text" name="border_color" />
</form>

假设用户在“背景颜色”输入中输入此十六进制颜色代码:
\FF8CA9
(浅粉色)。我想在“border_color”输入中自动添加此颜色十六进制代码的较暗色调:比如说
#D63E64
(深粉色)

因此,是否有可能1)找到输入“背景颜色”中输入的颜色的较暗色调,并生成其十六进制颜色代码,2)自动将其放置在输入“边框颜色”中而无需页面刷新

我不知道如何用另一种方式来解释,我知道这听起来可能令人困惑,但如果你不理解某些部分,请问我


其他信息:如果需要使用某种javascript,最好使用jQuery解决方案。

只需将其RGB值乘以某个值(或转换为HSV并修改V),即可获得更亮或更暗的颜色


请参阅。

我找到了一段旧代码,它完全符合您的要求。它可能需要一些调整。 按如下方式运行:

add_to_color('#996600', 10);
每r g和b值加10。这会使颜色变浅。要使颜色更深,请使用-10

function add_to_color(hex, addDec)                                                                                                                        
{                                                                                                                                                         
    hex = hex.replace('#', '');                                                                                                                           
    rDec = Hex2Dec(hex.substr(0,2));                                                                                                                      
    gDec = Hex2Dec(hex.substr(2,2));                                                                                                                      
    bDec = Hex2Dec(hex.substr(4,2));                                                                                                                      

    if( rDec < -addDec || gDec < -addDec || bDec < -addDec )                                                                                              
    {                                                                                                                                                     
        return '#'+hex;                                                                                                                                   
    }                                                                                                                                                     

    rDec = rDec + addDec;                                                                                                                                 
    gDec = gDec + addDec;                                                                                                                                 
    bDec = bDec + addDec;                                                                                                                                 

    hex = "#"+ Dec2Hex(rDec)+Dec2Hex(gDec)+Dec2Hex(bDec);                                                                                                 

    return hex;                                                                                                                                           
}

function Hex2Dec(HexVal)                                                                                                                                  
{                                                                                                                                                         
    HexVal=HexVal.toUpperCase();                                                                                                                          
    var DecVal=0;                                                                                                                                         
    var HV1=HexVal.substring(0,1);                                                                                                                        
    DecVal=(HexChars.indexOf(HV1)*16);                                                                                                                    
    HV1=HexVal.substring(1);                                                                                                                              
    DecVal+=HexChars.indexOf(HV1);                                                                                                                        
    return DecVal;                                                                                                                                        
}                                                                                                                                                         

// Created by T.N.W.Hynes - (c) 2002 PalandorZone.com ... Use it freely but leave this line intact                                                        
// Conversion function for Decimal to Hexadecimal - 255 max                                                                                               
function Dec2Hex(DecVal)                                                                                                                                  
{                                                                                                                                                         
    DecVal=parseInt(DecVal);                                                                                                                              
    if (DecVal > 255 || DecVal < 0)                                                                                                                       
    {                                                                                                                                                     
        DecVal=255;                                                                                                                                       
    }                                                                                                                                                     
    var Dig1 = DecVal % 16;                                                                                                                               
    var Dig2 = (DecVal-Dig1) / 16;                                                                                                                        
    var HexVal = HexChars.charAt(Dig2)+HexChars.charAt(Dig1);                                                                                             
    return HexVal;                                                                                                                                        
}
函数添加到颜色(十六进制,addDec)
{                                                                                                                                                         
十六进制=十六进制。替换('#','');
rDec=Hex2Dec(hex.substr(0,2));
gDec=Hex2Dec(hex.substr(2,2));
bDec=Hex2Dec(十六进制substr(4,2));
如果(rDec<-addDec | gDec<-addDec | bDec<-addDec)
{                                                                                                                                                     
返回“#”+十六进制;
}                                                                                                                                                     
rDec=rDec+addDec;
gDec=gDec+addDec;
bDec=bDec+addDec;
hex=“#”+Dec2Hex(rDec)+Dec2Hex(gDec)+Dec2Hex(bDec);
返回十六进制;
}
函数Hex2Dec(HexVal)
{                                                                                                                                                         
HexVal=HexVal.toUpperCase();
var-DecVal=0;
var HV1=六进制子串(0,1);
DecVal=(十六进制索引)(HV1)*16);
HV1=HexVal.子串(1);
DecVal+=HexChars.indexOf(HV1);
返回DecVal;
}                                                                                                                                                         
//由T.N.W.Hynes-(c)2002 PalandorZone.com创建。。。可以自由使用,但请保持此线路完整
//十进制到十六进制的转换函数-最大值255
函数Dec2Hex(DecVal)
{                                                                                                                                                         
DecVal=parseInt(DecVal);
如果(De)