internet explorer 10 - 如何应用灰度滤镜?

jel*_*ird 36 internet-explorer css3 internet-explorer-10

这个CSS代码非常适合Internet Explorer,直到9.

img.gray {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    filter: gray;
    -webkit-filter: grayscale(1);
}
Run Code Online (Sandbox Code Playgroud)

但是我需要为Internet Explorer 10做些什么?

Kat*_*ieK 34

IE10不支持 IE9及更早版本的DX过滤器,也不支持灰度过滤器的前缀版本.

但是,您可以在IE10中使用SVG覆盖来完成灰度.例:

img.grayscale:hover {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}

svg {
    background:url(http://4.bp.blogspot.com/-IzPWLqY4gJ0/T01CPzNb1KI/AAAAAAAACgA/_8uyj68QhFE/s400/a2cf7051-5952-4b39-aca3-4481976cb242.jpg);
}
Run Code Online (Sandbox Code Playgroud)

(来自:http://www.karlhorky.com/2012/06/cross-browser-image-grayscale-with-css.html)

简化的JSFiddle:http://jsfiddle.net/KatieK/qhU7d/2/

有关IE10 SVG滤镜效果的更多信息,请访问:http://blogs.msdn.com/b/ie/archive/2011/10/14/svg-filter-effects-in-ie10.aspx


Kar*_*rky 22

内联SVG可用于IE 10和11以及Edge 12.

我创建了一个名为gray的项目,其中包含用于这些浏览器的polyfill.polyfill <img>使用内联SVG 切换标签:https://github.com/karlhorky/gray

要实现,简短的版本是在上面的GitHub链接下载jQuery插件,并在你身体的末尾添加jQuery:

<script src="/js/jquery.gray.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后每个具有该类的图像grayscale将显示为灰色.

<img src="/img/color.jpg" class="grayscale">
Run Code Online (Sandbox Code Playgroud)

如果你愿意,你也可以看一个演示.

  • 这确实是我遇到的最好的灰度JS插件,我尝试了5个,干得好! (3认同)

Cor*_*rni 5

使用这个jQuery插件 https://gianlucaguarini.github.io/jQuery.BlackAndWhite/

这似乎是唯一一个跨浏览器的解决方案.此外,它具有良好的淡入淡出效果.