2

不确定是什么原因造成的?

如果我在 Firefox 中使用 slideDown ,则文本渲染会在动画完成之前切断字母的顶部。这在 IE 中没问题。

如果我随后将动画更改为使用淡入淡出,则在 Firefox 中不会发生模糊,但在 IE 中文本非常参差不齐。

从我过去问过的另一个关于动画的问题中,这个人告诉我,我应该将我想要动画的内容包装在另一个 DIV 中并改为动画。这解决了 .animateDiv 中内容的填充引起的抖动。

jQuery中的文本渲染是否也有技巧

4

2 回答 2

2

您需要使用类似 herehere的技术。基本上 IE 中的任何淡入淡出都必须通过 CSS 过滤器完成,这实际上是 IE 特定的东西,真正 FUBARs CelarType...所以当您完成淡入或淡出时,您需要删除filter它留下的内容。

现在对于部分褪色的文本,这将无济于事,但是如果您一直淡入淡出,这将清除结果...在淡入淡出期间您仍然会有锯齿状的文本,这就是 IE 的行为方式不幸的是(IE9 解决了这个问题,但是 IE7/8 很长一段时间都不会去任何地方)。

如果您在第一个链接中使用该技术,只需在任何地方使用它们之前包含函数(仅一次),如下所示:

$.fn.customFadeIn = function(speed, callback) {
    $(this).fadeIn(speed, function() {
        if(!$.support.opacity)
            $(this).get(0).style.removeAttribute('filter');
        if(callback != undefined)
            callback();
    });
};

然后代替.fadeIn(),您调用.customFadeIn(),如下所示:

$("#uglyThingInIE").customFadeIn(500);
于 2010-05-29T10:42:09.540 回答
0

我认为IE 有 ClearType 和动画的问题。不确定FF。

于 2010-05-29T09:35:53.440 回答