1

我在让 jQuery 的淡入和淡出效果在 IE (6+7+8) 中正常工作时遇到问题。该脚本在 FF 和 safari 中运行良好(褪色很好),但在 IE 中它只是显示/隐藏 - 根本没有褪色效果。

有任何想法吗?

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

它得到的 href 属性只是保存一个数值,表示 ul li 长度中的位置。

4

5 回答 5

3

我遇到了同样的问题并使用了下面的代码(来自上面 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();  
    }); 
}; 
于 2009-12-21T17:47:22.070 回答
1

试试这个解决方法

于 2009-12-21T17:12:52.187 回答
1

对我来说,使用fadeIn()效果很好,我<div>会很好地在 IE9 上淡入,然后(一旦淡入完成)它会再次消失。啊。

修复方法是添加filter此处显示的 css 值:

$("#fadeMeIn").fadeIn("slow");
$("#fadeMeIn").css('filter', 'none');
于 2014-03-24T12:30:41.217 回答
0

试试这个:

$(".myclass ul li:eq(" + $(this).attr("href") + ")").hide().fadeIn(5000);
于 2009-12-21T17:13:21.590 回答
0

我在 IE8 中遇到了类似的脚本问题。在我设置 z-index 后,问题就消失了。我在下面找到了解决方案。

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

于 2010-11-02T19:04:08.593 回答