我试图制作一个函数,检查元素的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)