我试图制作检查元素的bg并更改其bg的函数给出了alpha通道.功能有这种形式:
$.fn.bgalpha = function(alpha) {
var bg = $(this).css('background-color');
//...
}
Run Code Online (Sandbox Code Playgroud)
但是:当设置正常颜色时,chrome将bg返回为rgb,当没有bg时,chrome返回为零的rgba,即8总是返回hex,ie9在没有bg时返回'transparent',当有bg时返回rgb等等.案例.
我想要做的是>从对象的bg颜色中获取r,g,b,将其添加到'a'通道并将元素bg设置为具有所有值的rgba.但是从简单的事情来看,当我们讨论交叉浏览时,它变得棘手和复杂.
你有没有想过如何使用那些'uniwersal'方式操作这些颜色?在不同的情况下,我得到值'无','透明','rgba','rgb'或'hex'作为bg的初始值
包含jQuery Color 插件(它是官方认可的)并使用它的.alpha()方法。
以下代码片段将更改 的背景颜色,this使其达到 50% 透明:
var clr2 = $.Color(this,'background-color').alpha(0.5);
$(this).css('background-color', clr2.toRgbaString());
Run Code Online (Sandbox Code Playgroud)
或作为一行:
$(this).css('background-color', $.Color(this,'background-color').alpha(0.5).toRgbaString());
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/mblase75/aea3h/