Internet explorer internet explorer 10-如何应用灰度过滤器?

Internet explorer internet explorer 10-如何应用灰度过滤器?,internet-explorer,css,internet-explorer-10,Internet Explorer,Css,Internet Explorer 10,这个CSS代码在9点之前对InternetExplorer非常有效 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.3

这个CSS代码在9点之前对InternetExplorer非常有效

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);
}
img.gray{
过滤器:url(“数据:图像/svg+xml;utf8,#灰度”);
过滤器:灰色;
-webkit过滤器:灰度(1);
}
但是,我需要为Internet Explorer 10做些什么呢?

正如IE9和更早版本所做的那样,它也不支持带前缀的灰度过滤器版本

但是,您可以在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);
}
img.grayscale:悬停{
过滤器:url(“数据:图像/svg+xml;utf8,#灰度”);
}
svg{
背景:url(http://4.bp.blogspot.com/-IzPWLqY4gJ0/T01CPzNb1KI/AAAAAAAACgA/_8uyj68QhFE/s400/a2cf7051-5952-4b39-aca3-4481976cb242.jpg);
}
(发件人:)

简化JSFIDLE:

关于IE10 SVG过滤效果的更多信息:

使用此jQuery插件

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

$('.bwWrapper').BlackAndWhite({
    hoverEffect : true, // default true
    // set the path to BnWWorker.js for a superfast implementation
    webworkerPath : false,
    // to invert the hover effect
    invertHoverEffect: false,
    // this option works only on the modern browsers ( on IE lower than 9 it remains always 1)
    intensity:1,
    speed: { //this property could also be just speed: value for both fadeIn and fadeOut
        fadeIn: 200, // 200ms for fadeIn animations
        fadeOut: 800 // 800ms for fadeOut animations
    },
    onImageReady:function(img) {
        // this callback gets executed anytime an image is converted
    }
});

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

我创建了一个名为gray的项目,其中包括这些浏览器的多边形填充。polyfill使用内嵌SVG切换出
标记:

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


如果您愿意,也可以。

如果不在CSS中引用图像URL,是否无法实现此目的?我正试图让它在一个有多个图像的页面上工作,所以我想我可以将每个图像添加到CSS中。。。这是一件很差劲的事,但事实上,它是IE!你应该把这当作一个全新的问题来问。在这里包含一个链接,但一定要有示例代码(在Q和JSFIDLE中),以便有人能够理解您的目标。我很困惑,如果不使用图像的URL,你会如何引用图像。简言之:不,在IE中,你不能像在理智的浏览器中那样将SVG过滤器应用于HTML图像。这确实是我遇到的最好的灰度JS插件,我尝试了5个,干得好!干杯,很高兴它有帮助!从2015年开始一路走来,谢谢!这个插件是一个救命稻草,在过去的两天里,我一直在互联网上寻找这种类型的解决方案。非常感谢。你是个救生员。工作得很好。非常感谢。没问题,很高兴我能帮忙!指向工具或库的链接。
<script src="/js/jquery.gray.min.js"></script>
<img src="/img/color.jpg" class="grayscale">