【发布时间】:2014-11-22 13:36:00
【问题描述】:
基本上,我想从一个 CSS 元素(在我们的例子中为 #button)* 获取颜色,并将其用于另一个 CSS 元素(在我们的例子中为 #output)* 但带有 opacity 。我想要 rgba 中的输出,所以我可以设置 rgba 的不透明度。我的解决方案似乎不想工作......
function hex2rgb(hex, opacity) {
var h=hex.replace('#', '');
h = h.match(new RegExp('(.{'+h.length/3+'})', 'g'));
for(var i=0; i<h.length; i++)
h[i] = parseInt(h[i].length==1? h[i]+h[i]:h[i], 16);
if (typeof opacity != 'undefined') h.push(opacity);
return 'rgba('+h.join(',')+')';
}
var getcolor = $("#button").css("color");
var colour = hex2rgb(getcolor,0.3);
$(function() {
$("#output").css("backgroundColor",colour);
});
*见JSFiddle
【问题讨论】:
-
首先,您的演示中没有带有
#element的元素。其次,你想用h[i] = parseInt(h[i].length == 1 ? h[i] + h[i] : h[i], 16);做什么? -
演示中没有
id=button。这应该怎么做? -
好的,抱歉,已编辑,#button 。
-
@TJ 我正在尝试从#button 获取颜色到#output,但我不知道如何从#button 获取颜色并将其转换为具有不透明度的#output。我知道默认情况下,当您从 CSS 元素中获取颜色时,您会进入 rgb,我想将 rgb 旁边的 alpha 添加到新的 #output 中。
-
@charlietfl 请再看一遍。
标签: jquery css colors get opacity