jQuery函数将alpha添加到元素bg中



我试图制作一个函数,检查元素的bg并将其bg更改为给定的alpha通道。函数的形式如下:

$.fn.bgalpha = function(alpha) {
    var bg = $(this).css('background-color');
    //...
}

但是:当设置正常颜色时,chrome将bg返回为rgb,当没有bg时,返回为零的rgba,ie8总是返回十六进制,ie9在没有bg和有bg时返回"透明",等等。

我想做的是>从对象的bg颜色中获取r,g,b,添加到它的"a"通道,并将元素bg设置为rgba和所有值。但从简单的事情开始,当我们谈论交叉浏览时,它变得越来越棘手和复杂。

你知道如何以某种"独特"的方式使用这些颜色吗?在不同的情况下,我得到值"none"、"transparent"、"rgba"、"argb"或"hex"作为bg 的初始值

包含jQuery Color插件(官方批准)并使用其.alpha()方法。

以下代码片段将更改this的背景色,使其具有50%的透明度:

var clr2 = $.Color(this,'background-color').alpha(0.5);
$(this).css('background-color', clr2.toRgbaString());

或者作为一行:

$(this).css('background-color', $.Color(this,'background-color').alpha(0.5).toRgbaString());

http://jsfiddle.net/mblase75/aea3h/

$.fn.bgalpha = function(alpha)
{
    return $(this).each(function(){
        $(this).css('background-color', $.Color(this,'background-color').alpha(alpha).toRgbaString());          
    });
}

使用Blazemonger的解决方案-这是最终代码。

使用:

$('.something').bgalpha(0.8);

并且它需要jquery.color.js(缩小后7kb)

最新更新