jQuery fadeIn fadeOut文本在Internet Explorer IE中看起来很糟糕:让修复工作正常

时间:2011-01-18 20:43:39

标签: jquery internet-explorer

我已尝试过此前(以及其他地方)发布的解决方案,用于在Internet Explorer IE中的jQuery fadeIn和fadeOut期间查看像素化和错误的文本。

两种解决方案似乎很常见:添加背景颜色或删除“过滤器”属性。

通过这种设计,我无法使用背景颜色修复(这有助于但不会完全消除问题)。

所以我一直在尝试“在fadeIn”修复后删除过滤器属性。 但它没有修复文本,而“removeAttribute”版本则停止了脚本。 你们是怎么让它上班的?

我的jQ代码如下。

感谢您考虑这个问题!

====================================

//此循环基于Pointy的另一个Stackoverflow答案

    var divs = $('.myDiv'), i = 0;
    function reveal() {
        if (i == divs.length) divs.fadeIn(inTime, function(){           
            $('.mainPadding').css("height", "4000px"); 
            }); 
        divs.eq(i).fadeIn(inTime, function(){
               //$(this).style.removeAttribute('filter');
               $(this).removeAttr("filter");
            }).delay(waitTime).fadeOut(outTime, function() {
                i++; 
                setTimeout(reveal, 0);
          });
    }
    setTimeout(reveal, 0);   

1 个答案:

答案 0 :(得分:2)

这是我在那里找到的......


// When fading a html node with the .fadeIn() and .fadeOut() // functions in jQuery, IE drops the windows Cleartype rendering; // which results in very ugly text. This override corrects that problem

    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();
        });
    };