jQuery - 从一个元素获取颜色并将其用于另一个具有不透明度的元素

标签 jquery css colors get opacity

基本上,我想从一个 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

最佳答案

您可以使用 opacity 属性,而不是尝试修改 rgb,如下所示:

function change(source, target, alpha) {
    var color = source.css("color");
    var sub = color.slice(0,-1).replace("rgb","rgba");
    color = sub+ ", "+alpha+")";
    target.css("background-color", color);
}

$(function () {
    change($("#button"),$("#output"), 0.5)
});
#output {
    border:1px solid black;
    width:400px;
    height:400px;
    background:#ff0; /* This needs to be replaced with #button color to rgba */
}

#button {
    color:#F54C54;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output"></div>
<br>
<div id="button">Get color from this text</div>

关于jQuery - 从一个元素获取颜色并将其用于另一个具有不透明度的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078226/

相关文章:

jquery - 为什么 JQuery datePicker 不执行?

colors - wxPython wxListCtrl 选中的行颜色

xcode - 混合 Objective-C/Swift 项目中 Storyboard颜色的问题

javascript - 从一组 float 元素中计算出行中的最后一个 div

javascript - 如何在浏览器不崩溃的情况下将大量json数据导出到CSV?

append 字符串中的Javascript if语句检查对象属性是否未定义(如果不显示属性)?

css - 对齐具有相同高度和内联的元素

css - 如何使用 & 为列表中的一个特定选择器嵌套 scss 规则

c++ - 为什么是 BGRA 而不是 RGBA?

jquery - 如何正确转义 jQuery 的 .ajax 函数中作为数据发送的 html