Jquery获得背景渐变颜色

Tay*_*mez 5 javascript jquery css3

我想获得背景颜色并将其放入 body,例如我的背景是在课堂上FirstColor:

.FirstColor{
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ECAA63), to(#E36D0A));
}
Run Code Online (Sandbox Code Playgroud)

现在我想要在课堂上获得颜色#ECAA63#E36D0A背景,.FirstColor并替换它们而不是颜色body

body 如下:

body{
    background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 350, from(#CEEEEE), to(#98BFF1));
}
Run Code Online (Sandbox Code Playgroud)

替换他们班.FirstColorbody为:

#ECAA63 - 相反 - >
#CEEEEE#E36D0A - 而不是 - >#98BFF1

我试图获得背景色ac:http://jsfiddle.net/rKQwu/但是做不到.

acj*_*jay 1

首先,为什么不直接切换div的类而不是直接修改样式呢?

\n\n

但是,如果您需要这样做,那么您需要从样式值中解析from和值。to正如我在评论中所说,你的代码在 jsfiddle 中似乎没问题;问题似乎是您为库选择了 MooTools 而不是 jQuery,在我切换后,它按预期工作。我对 Webkit 标准了解不多,但在 Chrome 23 上,十六进制值转换为rgb(r, g, b)样式三元组,所以我编写了一些代码来解析它们:

\n\n
var bgGrad = $(\'.FirstColor\').css("background");\nvar parseRgb = (function (rgbStr) { return rgbStr.match(/rgb\\(([0-9]+), ([0-9]+), ([0-9]+)\\)/); });\nvar fromStr = bgGrad.match(/from\\((.*)\\),/)[1];\nvar fromRgb = parseRgb(fromStr);\n\nvar toStr = bgGrad.match(/to\\((.*)\\)\\)/)[1];\nvar toRgb = parseRgb(toStr);\n\nalert(\'From rgb: \' + fromRgb.slice(1,4) + \'\\nTo rgb: \' + toRgb.slice(1, 4));\n\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此代码之后(在 jsfiddle),fromRgb以及toRgb是 3 个 rgb 值的数组。一旦提取并修改了您认为合适的值,重建新的背景渐变字符串应该很简单。我不太了解这段代码对于不同情况的鲁棒性,但对于您给出的示例,它在上面的 Chrome 版本上似乎对我来说工作得很好。

\n