#google-chrome #transparent #background-color
#google-chrome #прозрачный #цвет фона
Вопрос:
У меня есть элемент div, который необходимо скрывать всякий раз, когда не установлен цвет фона. Итак, я придумал это простое утверждение jquery:
$(function() {
if ($('.colorpicker').css('background-color') == 'transparent')
{
$(this).find('.colorpicker-wrapper').css('display','none');
}
});
в Firefox все работает хорошо, он скрывает оболочку, когда для bg-color не установлено значение. Но в Chrome и safari, похоже, он не распознает transparent как допустимое значение ..?
Я пытался установить значение ‘null’ или ‘unidentified’, но безрезультатно..
У кого-нибудь есть какие-либо подсказки?
Ответ №1:
Ваша проблема заключается в несоответствии в jQuery. Обычно, когда цвет фона не задан, значение устанавливается в пустую строку ( ""
). Смотрите:
var d = document.createElement("div");
return d.style.backgroundColor
d.style.backgroundColor всегда будет возвращаться ""
как для Firefox, так и для chrome. Но при использовании css()
функции jQuery jQuery преобразует его в значение по умолчанию.
Я предлагаю использовать: $('.colorpicker')[0].style.backgroundColor == ""
Ответ №2:
Chrome возвращает цвет rgba rgba(0, 0, 0, 0)
вместо transparent
. Ознакомьтесь с этой демонстрацией и методом ее проверки (демо).
if ( /transparent|rgba(0, 0, 0, 0)/.test( $('.colorpicker').css('background-color') )
{
$(this).find('.colorpicker-wrapper').css('display','none');
}