Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery函数将alpha添加到元素bg_Jquery - Fatal编程技术网

jQuery函数将alpha添加到元素bg

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等等。情况大不相

我正在尝试做一个功能,检查元素的背景,并将其背景更改为给定的alpha通道。函数具有以下形式:

$.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);