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