2

好吧,老实说,我真的不知道如何描述这一点,除了:

“为什么这在 IE8 中不起作用,但在 Firefox 或 Chrome 中却很好”:http: //jsfiddle.net/iddqd/xEfSK/

但是,我会尝试:所以当它没有动画时它看起来很好,并且似乎有两个问题。一是IE在淡入淡出时没有使用抗锯齿,二是文本以某种方式穿过了半透明的div。

我尝试了各种技巧,例如使用回调函数删除过滤器,将文本放在单独的 div 中,将 whiteBackground 放在框外。在所有组合中,我找不到可行的解决方案。

有什么提示吗?

4

1 回答 1

0

简短的回答是 IE8 及更低版本不支持opacity也不支持任何类型的透明度模拟器,例如rgba()着色。它只能通过使用(现已弃用)filter语法在内部调用 DirectX 渲染来模拟这一点。这是 jQuery 在内部尝试做的以提供“可能的最佳预期结果”,但是是的,它看起来会更丑,因为 DirectX 过滤器对图像进行操作,因此浏览器必须在内部渲染并传递它,从而创建2个问题:

  • 抗锯齿很棘手,因为无法应用 ClearType
  • 因为 DirectX 试图在顶部渲染,所以它可能存在堆叠问题,例如在转换期间单独的层并不总是以正确的顺序出现

您描述了这两个问题,令人遗憾的是,过滤器破解是正常的。您可以在此页面上找到一些可能的解决方案,但总的来说,我只是接受这在 IE<=8 上无法正常工作,和/或优雅地降级以跳过这些浏览器中的淡入淡出。

于 2013-05-20T23:54:18.960 回答