2010-10-07 50 views
2

我遇到了一个令人讨厌的问题,在我制作的JavaScript动画上使用Internet Explorer。 我有一幅城市天际线的灰度图像,将其不透明度降至0,显示出全彩的天际线。JavaScript不透明在Internet Explorer中的反锯齿问题

它在所有其他浏览器中看起来不错,但是IE会显示工件。一位朋友告诉我,这是因为在IE中使用javascript生成不透明度的一些奇怪错误。与抗锯齿和假定的黑色背景有什么关系?我不知道。

+0

我们在谈论什么版本的IE? – 2010-10-07 19:44:59

+0

我检查了IE 7和8.我认为它已经打破了6,并没有打扰检查9 – 2010-10-08 00:11:06

回答

1

最简单的修复 - 将图像更改为gif。由于你是城市形象没有任何渐变,所以在PNG格式中的alpha通道支持的优势并不是你所需要的。这应该一直回到ie6。

+0

这是我实际解决问题的方法。奇迹般有效 – 2010-10-11 13:04:35

6

alpha过滤器(由jQuery用作IE不支持的CSS,其中CSS opacity不受支持)不能与具有Alpha通道的图像共存,例如PNG上的变量透明度。它会强制形状边缘的部分透明黑色像素完全不透明,从而导致伪像。

将alpha过滤器放在<div>包含的半透明图像上,可以获得更好的效果。 (如果您需要IE6支持,您还需要在图像本身上进行PNG修正。)这仍然不是很正确,因为每个像素的不透明度都被视为图像不透明度和滤镜不透明度的最小值,而不是两倍。但它通常仍然看起来不错,并且不会引入你在这里得到的太不透明的问题。

+0

谢谢。这是一个很好的问题是什么问题。然而,我对这个建议的修复感到困惑;并且由于Brians解决方案很简单,我试过了,它工作正常! – 2010-10-11 13:06:11