希望使用this跨浏览器灰度过滤器并让它处理所有图像,但我想将效果限制在单个div中的图像。
在function.js中,我从grayscale($('img'));
更改了选择器的所有实例
至grayscale($('#grayscale-div img'));
并在所有情况下都这样做。它正在添加CSS类,但在IE11中效果不再起作用。
我正在尝试查看这是否是我使用jQuery选择器犯的错误。感谢您提前指出我正确的方向。
代码摘录:
if (getInternetExplorerVersion() >= 10){
$('#grayscale-div img').each(function(){
var el = $(this);
el.css({"position":"absolute"}).wrap("<div class='img_wrapper' style='display: inline-block'>").clone().addClass('img_grayscale').css({"position":"absolute","z-index":"5","opacity":"0"}).insertBefore(el).queue(function(){
var el = $(this);
el.parent().css({"width":this.width,"height":this.height});
el.dequeue();
});
this.src = grayscaleIE10(this.src);
});
// Quick animation on IE10+
$('#grayscale-div img').hover(
function () {
$(this).parent().find('img:first').stop().animate({opacity:1}, 200);
},
function () {
$('.img_grayscale').stop().animate({opacity:0}, 200);
}
);
答案 0 :(得分:0)
IE11中getInternetExplorerVersion()
条件检查失败。以下更改:
if(getInternetExplorerVersion() >= 10 || !!window.MSInputMethodContext)
将在上面显示的代码中修复它。以下是一些无关的问题,可以解释问题和解决方案: