Nach dem Debuggen für Stunden fand ich, von wo das Problem kam. Es kam aufgrund der Funktionen.js für die Graustufen Effekte auf die Bilder. Die Graustufenfilter funktionieren nicht auf IE10 und IE10 +. Die Funktion, die das Thema "Funktion grayscaleIE10 (src)" verursacht:
// Grayscale images only on browsers IE10+ since they removed support for CSS grayscale filter
if (getInternetExplorerVersion() >= 10){
jQuery('.grscale').each(function(){
var el = jQuery(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 = jQuery(this);
el.parent().css({"width":this.width,"height":this.height});
el.dequeue();
});
this.src = grayscaleIE10(this.src);
});
// Quick animation on IE10+
jQuery('.grscale').hover(
function() {
jQuery(this).parent().find('img:first').stop().animate({opacity:1}, 200);
},
function() {
jQuery('.img_grayscale').stop().animate({opacity:0}, 200);
}
);
function grayscaleIE10(src){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgObj = new Image();
imgObj.src = src;
canvas.width = imgObj.width;
canvas.height = imgObj.height;
ctx.drawImage(imgObj, 0, 0);
var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
for(var y = 0; y < imgPixels.height; y++){
for(var x = 0; x < imgPixels.width; x++){
var i = (y * 4) * imgPixels.width + x * 4;
var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2])/3;
imgPixels.data[i] = avg;
imgPixels.data[i + 1] = avg;
imgPixels.data[i + 2] = avg;
}
}
ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
return canvas.toDataURL();
};
};
Irgendwelche Ideen, wie diese Funktion zu modifizieren für IE10 & IE10 +? Ich habe auch auf die anderen Beispiele und Demos für den Graustufeneffekt hingewiesen. Ich hatte gehofft, wenn es eine Möglichkeit gibt, diese spezielle Funktion zu ändern, ohne js und CSS-Dateien zu ändern.