Самое надежное решение - не использовать pngs в анимации в стиле затухания в браузерах <IE9
.
Я испробовал почти все «исправления» и варианты доступных исправлений, которые я мог найти для этой проблемы, но безуспешно. Решение, которое я использовал, состояло в том, чтобы экспортировать png-файлы, к которым были применены анимации в стиле затухания (т.е. fadeIn / fadeOut), в gif-файлы и выполнить условную замену <IE9
. Хотя GIF-файлы не выглядят так же хорошо, как png-файлы в современном браузере, они выглядят намного лучше, чем IE8 и более ранние версии png-файлов, и этот метод работает надежно. Вы по-прежнему можете отображать хорошие png-файлы для способных браузеров, и когда исправление применяется, ничего больше не нарушается; Известно, что большинство png-хаков нарушают другие свойства CSS. Ваш код может выглядеть примерно так:
$(document).ready(function ()
{
if ($.browser.msie && parseInt($.browser.version, 10) < 9)
{
$(".myClass, .myOtherClass").each(function (val)
{
var backgroundValue = val.css("background-image");
backgroundValue.replace('.png', '.gif');
$(this).css("background-image", backgroundValue);
//you could just as easily do this with 'img' tags
});
}
}