微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Chrome背景颜色问题:“透明”不是有效值?

如何解决Chrome背景颜色问题:“透明”不是有效值?

| 我有一个div元素,只要没有背景色设置就需要隐藏。所以我想出了这个简单的jquery语句:
$(function() {

if ($(\'.colorpicker\').css(\'background-color\') == \'transparent\')
{
$(this).find(\'.colorpicker-wrapper\').css(\'display\',\'none\');
}

});
一切在Firefox中都运行良好,当没有为bg-color设置任何值时,它将隐藏包装器。但是在chrome和safari中,似乎没有将透明识别为有效值。 我尝试将值设置为\'null \'或\'unidentified \',但无济于事。 有人有任何线索吗?     

解决方法

您的问题是jQuery中的不一致。通常,如果未设置背景色,则将值设置为空字符串(
\"\"
)。看到:
var d = document.createElement(\"div\");
return d.style.backgroundColor
对于Firefox和chrome,d.style.backgroundColor将始终返回
\"\"
。但是,当使用jQuery
css()
函数时,jQuery会将其转换为其默认值。 我建议使用:
$(\'.colorpicker\')[0].style.backgroundColor == \"\"
    ,Chrome会返回
rgba(0,0)
而不是
transparent
的rgba颜色。查看此演示以及测试它的方法(演示)。
if ( /transparent|rgba\\(0,0\\)/.test( $(\'.colorpicker\').css(\'background-color\') )
{
  $(this).find(\'.colorpicker-wrapper\').css(\'display\',\'none\');
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。