Вам нужно будет пройти вверх по дереву, чтобы найти элемент с background-color
, один из подходов, который я применил, был таким (где textureEl
- элемент, который вы хотите проверить):
bgcolor = $(textureEl).css('background-color');
if (isTransparent(bgcolor)){
$(textureEl).parents().each(function(){
if (!isTransparent($(this).css('background-color'))){
bgcolor = $(this).css('background-color');
return false;
}
});
}
и
function isTransparent(bgcolor){
return (bgcolor=="transparent" || bgcolor.substring(0,4) == "rgba");
}
, но обратите внимание, что моя функция isTransparent
сделала любое не 100% -ное значение непрозрачности помеченным как прозрачное, если вы не хотите этого, то переопределите, что делать с rgba
цветами.
Это, конечно, тоже не учитывает background-image
s, но, поскольку ваш вопрос не упомянул их, и мое приложение не приняло их во внимание, там нечего проверятьизображения.