Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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中判断元素';谁的背景是透明的?_Jquery - Fatal编程技术网

如何在jQuery中判断元素';谁的背景是透明的?

如何在jQuery中判断元素';谁的背景是透明的?,jquery,Jquery,如果“元素”具有透明背景 $('element').css('background-color') 在某些浏览器中返回“透明”,在其他浏览器中返回“rgba(0,0,0,0)” 我希望jQuery能够以跨浏览器的方式告诉我们元素是否有透明的背景 我错过什么了吗 谢谢rgba(0,0,0,0)与透明相同。最后一个数字是颜色的填充方式,0=透明 function background_color(element) { if (element.css('background-color')

如果“元素”具有透明背景

$('element').css('background-color') 
在某些浏览器中返回“透明”,在其他浏览器中返回“rgba(0,0,0,0)”

我希望jQuery能够以跨浏览器的方式告诉我们元素是否有透明的背景

我错过什么了吗

谢谢

rgba(0,0,0,0)与透明相同。最后一个数字是颜色的填充方式,0=透明

function background_color(element) {
    if (element.css('background-color') === 'rgba(0, 0, 0, 0)'){
        return 'transparent';
    }
    return element.css('background-color');
}

background_color($('element')) // will do the trick 

我不确定这是否对您太有用,但您可以添加一个,并在其中进行处理。您也可以定义它,以便修改
.css(背景色)
的返回,但我没有足够的
cssHooks
经验,不知道如何避免它无限递归:/

$.cssHooks["nBackgroundColor"] = {//proxy to .css("background-color") called with .css("n-background-color")
    get: function(elem) {
        var back = $(elem).css("background-color");
        return back === "rgba(0, 0, 0, 0)" ? "transparent" : back;
    }, 
    set: function(elem, val){ return $(elem).css('background-color', val); }
};

$($("div")[10]).css('n-background-color');//=> transparent

尝试使用
if($('element').css('background-color')==='transparent'){}
@Vucko,这两种颜色在Chrome中都不起作用为什么不同时使用<代码>如果($('element').css('background-color')==='transparent'| |$('element').css('background-color')==='rgba(0,0,0,0){}我现在正在寻找这两种颜色。但是我检查了很多地方,我只是觉得jQuery可能有一个更干净的解决方案给我。谢谢。我想我不会在这里使用它,但知道它很好!要记住一件事:像
rgba(255,255,255,0)
这样的值也是完全透明的。前3个值是什么并不重要,只要最后一个值是0,所以这里有一些很小的误报可能性。