Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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 如何将方框阴影值从RGB值转换为十六进制值_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何将方框阴影值从RGB值转换为十六进制值

Javascript 如何将方框阴影值从RGB值转换为十六进制值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想把box shadow:rgb(255,255,255)10px 10px 0px,rgb(0,0,0)10px 10px 0px,rgb(255,255,255)10px 10px 0px转换成box shadow:#FFF 10px 10px 0px,#000 10px 10px 0px,#FFF 10px 10px 0px 有人能帮我吗 提前感谢。要将RGB转换为十六进制,您需要为每个r、g和b找到不同的源根据长度为每个源找到十六进制 function findMyHex(get) {

我想把
box shadow:rgb(255,255,255)10px 10px 0px,rgb(0,0,0)10px 10px 0px,rgb(255,255,255)10px 10px 0px
转换成
box shadow:#FFF 10px 10px 0px,#000 10px 10px 0px,#FFF 10px 10px 0px

有人能帮我吗


提前感谢。

要将RGB转换为十六进制,您需要为每个r、g和b找到不同的源根据长度为每个源找到十六进制

function findMyHex(get) {
    var hex = get.toString(16);
    return hex.length == 1 ? "0" + hex : hex;
}

function tohex(r, g, b) {
    return "#" + findMyHex(r) + findMyHex(g) + findMyHex(b);
}

console.log(tohex(255, 255, 255)); 

希望这对您有所帮助。

在javascript中,您可以使用
.toString(base)
将一个数字转换为另一个基数(在本例中是base 16->hexadecimal)

例如:

var r = 255;
var g = 128;
var b = 219;
var hex = "#" + r.toString(16) + g.toString(16) + b.toString(16);
// hex = #ff80db
您只需在循环中通过所需的文本运行类似的内容,并替换每一次出现的内容。

可能有些过激

function rgbToHex(str_rgb, withShorts, b) {
    var r, g, h;
    if (arguments.length < 3) {
        withShorts = !!withShorts;
        h = str_rgb.match(/rgba?\( *(\d+) *, *(\d+) *, *(\d+)/);
        r = +h[1];
        g = +h[2];
        b = +h[3];
    } else {
        r = str_rgb | 0, g = withShorts | 0, b = b | 0;
        withShorts = !!arguments[3];
    }
    r = r.toString(16), g = g.toString(16), b = b.toString(16);
    r = ('0' + r).slice(-2), g = ('0' + g).slice(-2), b = ('0' + b).slice(-2);
    if (withShorts) {
        if (r[0] === r[1])
            if(g[0] === g[1])
                if (b[0] === b[1])
                    return '#' + (r[0] + g[0] + b[0]).toUpperCase();
    }
    return '#' + (r + g + b).toUpperCase();
}

你想要一个脚本来做这件事,还是手动做,只是不知道怎么做?我想知道是否有任何API/脚本用于将方框阴影从RGB转换为HEXE。实际上,我得到了一个包含多个下拉阴影值的长字符串。与其使用正则表达式并从整个字符串中过滤出多个rgb值,不如了解是否存在任何已存在的javascript代码段或任何DOM API。。。
// ints
rgbToHex(255, 255, 255);       // "#FFFFFF"
rgbToHex(255, 255, 255, true); // "#FFF"
// strings
rgbToHex('rgb(255, 255, 255)');       // "#FFFFFF"
rgbToHex('rgb(255, 255, 255)', true); // "#FFF"
// ignores alpha
rgbToHex('rgba(255, 255, 255, 0)'); // "#FFFFFF"
// does padding
rgbToHex(1, 10, 14); // "#010A0E"