在我的web应用程序中,我需要对一些图片进行去饱和/灰度处理。我使用以下CSS来实现这一点:
.grayscale {
filter: grayscale(100%); /* Current draft standard */
-webkit-filter: grayscale(100%); /* New WebKit */
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%); /* Not yet supported in Gecko, Opera or IE */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
filter: url("data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg'><filter%20id='grayscale'><feColorMatrix%20type='matrix'%20values='0.3333%200.3333%200.3333%200%200%200.3333%200.3333%200.3333%200%200%200.3333%200.3333%200.3333%200%200%200%200%200%201%200'/></filter></svg>#grayscale"); /* Firefox 3.5+ */
-webkit-filter: grayscale(1); /* Old WebKit */
}
这涵盖了广泛的浏览器。问题是,像Safari5这样的一些旧浏览器没有受到它的影响。我知道有些像Pixastic这样的jQuery库确实支持那些旧浏览器,但我希望尽可能少地使用jQuery,以使我的页面加载尽可能快。因此,我的问题是:是否可以检查图像是否为灰度级,如果不是,请使用像Pixastic这样的jQuery插件来检查?
您可以使用modernizr来检测css过滤器:https://github.com/Modernizr/Modernizr/blob/master/feature-detects/css/filters.js