Вопрос

У меня возникла проблема с настройкой эффекта fadeIn и fadeOut в jQuery для правильной работы в IE (6+7+8).Скрипт отлично работает в FF и safari (красиво исчезает), но в IE он просто показывает / скрывает - никакого эффекта затухания вообще.

Есть какие-нибудь идеи?

$(".myclass ul li:eq(" + $(this).attr("href") + ")").fadeIn(5000); 

Атрибут href, который он получает, просто содержит числовое значение, представляющее позицию в длине ul li.

Это было полезно?

Решение

У меня была такая же проблема, и я использовал приведенный ниже код (по ссылке, размещенной Q8-coder выше).Это работает хорошо, но у меня все еще были некоторые проблемы.Я заметил, что использование fadeTo для элемента контейнера, у которого были дочерние элементы с относительным или абсолютным позиционированием, не работало в IE8.Родительский элемент исчезнет, но все дочерние элементы с положительным или относительным расположением останутся в поле зрения.Единственный способ обойти это состоял в том, чтобы выбрать элемент контейнера и все его дочерние элементы с помощью jQuery, а затем применить fadeTo ко всем из них.

jQuery.fn.fadeIn = function(speed, callback) { 
    return this.animate({opacity: 'show'}, speed, function() { 
        if (jQuery.browser.msie)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 

jQuery.fn.fadeOut = function(speed, callback) { 
    return this.animate({opacity: 'hide'}, speed, function() { 
        if (jQuery.browser.msie)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 

jQuery.fn.fadeTo = function(speed,to,callback) { 
    return this.animate({opacity: to}, speed, function() { 
        if (to == 1 && jQuery.browser.msie)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 

Другие советы

попробуй это обходной путь.

Для меня использование fadeIn() работало нормально, мой <div> будет хорошо проявляться в IE9, а затем (как только затухание будет завершено) снова исчезнет.Ах.

Исправление заключалось в добавлении filter значение CSS показано здесь:

$("#fadeMeIn").fadeIn("slow");
$("#fadeMeIn").css('filter', 'none');

Попробуй это:

$(".myclass ul li:eq(" + $(this).attr("href") + ")").hide().fadeIn(5000);

У меня была аналогичная проблема со сценарием в IE8.После установки z-индекса проблема исчезла.Я нашел решение ниже.

http://www.kevinleary.net/jquery-fadein-fadeout-problems-in-internet-explorer/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top