我在最初隐藏的 div 中的特定元素上调用简单的 fadeIn()。
JavaScript:
$("#enclosingdiv").css({visibility: "visible"});
$("#element").fadeIn(1500);
问题是在淡入淡出动画的持续时间内,渲染使文本看起来更粗或以不同的字体显示。动画完成后,它会恢复为原始字体/字体粗细,因此会出现“故障”或“突然切换”。我在 Chrome 和 IE 8 中都遇到过这个问题,并且在实现将不透明度从 0 设置为 100 的 animate(opacity) 方法时也遇到过这个问题(基本上与 fadeIn() 的效果相同)。
我做了很多研究并尝试了多种解决方案:
- 禁用 IE 的过滤器(即使问题不是 IE 特定的)。
- 为正在动画的元素添加了背景。
- 将 -webkit-font-smoothing 设置为抗锯齿(没有明显效果)。
- 尝试了一个 fadeTo(0.99) ,它只以与原始字体不同的未知或粗体字体暂停文本。
顺便说一句,我正在运行 Windows XP。
jsFiddle:http: //jsfiddle.net/2Txk7/34/