如何解决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将始终返回\"\"
。但是,当使用jQuerycss()
函数时,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 举报,一经查实,本站将立刻删除。