【问题标题】:jQuery FadeTo causing pixelated text in IE8 when font-weight: boldjQuery FadeTo 在字体粗细时导致 IE8 中的像素化文本:粗体
【发布时间】:2010-12-24 08:40:18
【问题描述】:

我正在淡出,并在一个 div 中:

$('.formErrors').fadeTo('fast', 0); 
$('.formErrors').fadeTo('slow', 1);

但是当我在 IE 8 中执行此操作时,似乎有点 CSS:

.formErrors li { font-weight: bold; }

导致文本返回相当失真:(下图)

http://www.newmania.com/images/error.jpg

我应用的 HTML 是:

<div class="formErrors">
There are errors in your submission. Please fix the following and try again:
<ul><li>Action is empty</li></ul>
</div>

它在 Firefox 中运行良好。请问有什么想法吗?

【问题讨论】:

    标签: jquery css fadeto


    【解决方案1】:

    如果您还没有图像,一个常见的解决方案是定义背景颜色:
    http://jsbin.com/axapa

    .formErrors {background-color:white;}
    

    另一种选择是使用fadeInfadeOut:动画很丑,但至少结局很好:http://jsbin.com/aboxa

    【讨论】:

    • 谢谢科比!背景颜色解决方案效果很好。使用fadeIn 和fadeOut,动画比使用2 个fadeTo 更难看,所以我会坚持使用它们。感谢您的帮助!
    • +1 帮助我解决了 PNG 在 IE8 上具有丑陋的非透明背景的问题。谢谢!
    • 再次为此解决方案 +1。在我的文本 div 上设置背景解决了这个问题!也在为最后期限而紧张!希望我可以+更多! :)
    【解决方案2】:
    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();  
    });
    };
    

    此代码将覆盖 JQuery 中特定于 IE 的一些淡入淡出属性。我能够在这里成功地让 fadeTo 在 IE 中正常工作:https://app.tekstme.com/signup/

    【讨论】:

      【解决方案3】:

      我知道这个帖子很老,但我找到了一个简单的解决方案。使用背景不适用于我的情况,因为我在文本后面有一个复杂的背景,其背景必须是透明的。无论如何,我发现这个工作得很好(要添加的 CSS 代码):

      .formErrors{position:relative;}
      

      【讨论】:

        【解决方案4】:

        使用 在 IE8 中为我解决了这个问题。文本在淡入淡出期间看起来仍然是块状的,但之后会变得平滑

        【讨论】:

          猜你喜欢
          • 2017-01-20
          • 2011-10-23
          • 1970-01-01
          • 1970-01-01
          • 2011-04-24
          • 2013-02-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多