2010-05-29 57 views
2

不确定是什么原因造成的?使用jQuery的Firefox和Internet Explorer中的文本渲染模糊

如果我的用户在Firefox中滑动,则文本呈现将在动画完成之前切断字母的顶部。这在IE中是可以的。

如果我然后更改动画以使用fadeIn代替,模糊不会在Firefox中发生,但文本在IE中非常参差。

从另一个问题,我问过去有关动画,该家伙告诉我,我应该包裹,我想在另一个DIV动画,并动画,而不是。这整理了由.animateDiv内的内容填充引起的急动。

有没有窍门的文本渲染以及jQuery中

回答

2

您需要使用技术like herehere。基本上IE中的任何淡入淡出都必须通过一个CSS过滤器完成,这实际上是一个IE特定的事情,真的是FUBAR CelarType ......所以当你完成淡入淡出时,你需要删除它留下的那个filter

现在对于部分褪色的文本,这将无济于事,但如果您将一路放入或放出,则会清除结果...在褪色期间,您仍然会看到锯齿状的文本,这只是IE的行为不幸的事情(IE9修复了这一点,但IE7/8很长一段时间没有去任何地方)。

如果使用the technique in the first link,只包括使用他们的任何地方,如在此之前的功能(只需一次):

$.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); 
+0

再次感谢Nick!这很好用! – 2010-05-31 08:17:20