jQuery函数将alpha添加到元素bg
我正在尝试做一个功能,检查元素的背景,并将其背景更改为给定的alpha通道。函数具有以下形式:jQuery函数将alpha添加到元素bg,jquery,Jquery,我正在尝试做一个功能,检查元素的背景,并将其背景更改为给定的alpha通道。函数具有以下形式: $.fn.bgalpha = function(alpha) { var bg = $(this).css('background-color'); //... } 但是:当设置正常颜色时,chrome会将bg返回为rgb;当没有bg时,chrome会将bg返回为带零的rgba,ie 8会始终返回十六进制,当没有bg时,ie9会返回“透明”,而当有bg时,会返回rgb等等。情况大不相
$.fn.bgalpha = function(alpha) {
var bg = $(this).css('background-color');
//...
}
但是:当设置正常颜色时,chrome会将bg返回为rgb;当没有bg时,chrome会将bg返回为带零的rgba,ie 8会始终返回十六进制,当没有bg时,ie9会返回“透明”,而当有bg时,会返回rgb等等。情况大不相同
我想做的是>从对象的bg颜色中获取r、g、b,将其添加到“a”通道中,并使用所有值将元素bg设置为rgba。但是,从简单的事情开始,当我们谈论交叉浏览时,它变得棘手和复杂
你知道如何用“uniwersal”的方式处理这些颜色吗?
在不同的情况下,我得到值“none”、“transparent”、“rgba”、“rgb”或“hex”作为bg的初始值,包括(官方认可的)并使用其.alpha()方法
下面的代码片段将更改此
的背景色,使其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());
使用解决方案-这是最终代码
使用:
$('.something').bgalpha(0.8);
它需要jquery.color.js
(缩小后为7kb)这可能比听起来简单得多。如果浏览器返回十六进制颜色,它可能不支持rgb,并且不是所有浏览器都支持。也不是所有浏览器都支持rgba,如果浏览器不支持rgba,则无法设置Alpha通道,因此您需要先测试浏览器是否支持rgba,如果支持,只需使用rgba设置颜色!解决方法:使用两个元素,一个是背景元素,一个是内容元素,两个元素层叠在一起。然后只改变背景的不透明度。不是真的。这取决于你想要实现什么。我把它剪短了。有红色的bg,lol div,make$('lol')。bgalpha(0.5);还有它的bg 50%透明,就是这样。我不确定这是什么意思,抱歉。我想那是因为我在我的代码片段中使用了这个
,而你还没有定义这个
。用您正在修改的HTML元素或jQuery对象替换这个
。
$('.something').bgalpha(0.8);