JQuery Fadein + Fadeout no IE?
Pergunta
Estou tendo um problema em gtettting fadein e efeito desbotado do jQuery para funcionar corretamente no IE (6+7+8). O script funciona bem no FF e no Safari (desbotando bem), mas no IE apenas mostra/couros - nenhum efeito desbotado.
Alguma ideia?
$(".myclass ul li:eq(" + $(this).attr("href") + ")").fadeIn(5000);
O atributo href que está recebendo está simplesmente mantendo um valor numérico representando a posição no comprimento da Ul Li.
Solução
Eu tinha o mesmo problema e usei o código abaixo (no link publicado pelo Q8-Coder acima). Funciona bem, mas eu ainda tive alguns problemas. Percebi que o uso do Fadeto em um elemento de contêiner com filhos com posicionamento relativo ou absoluto não funcionou no IE8. O pai desapareceria, mas todos os elementos dos filhos com posicionamento positivo ou relativo permaneceriam em vista. A única maneira de se locomover era selecionar o elemento do contêiner e tudo o que é crianças usando jQuery e depois aplicar o Fadeto a todos.
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();
});
};
Outras dicas
tente isso Gambiarra.
Para mim, usando fadeIn()
funcionou bem, meu <div>
Fidiria bem no IE9, então (uma vez que o desbotamento fosse concluído), ele desapareceria novamente. Ah.
A correção era adicionar o filter
Valor CSS mostrado aqui:
$("#fadeMeIn").fadeIn("slow");
$("#fadeMeIn").css('filter', 'none');
Experimente isso:
$(".myclass ul li:eq(" + $(this).attr("href") + ")").hide().fadeIn(5000);
Eu tive um problema semelhante com um script no IE8. Depois de definir o índice z, o problema desapareceu. Encontrei a solução abaixo.
http://www.kevinleary.net/jqueryer-fadein-fadeout-problems-in-nenternet-explorer/