Непрозрачность JavaScript: ошибка сглаживания в Internet Explorer - PullRequest
2 голосов
/ 07 октября 2010

Я столкнулся с досадной ошибкой в ​​Internet Explorer на анимации JavaScript, которую я сделал. У меня есть полутоновое изображение горизонта города, которое меняет свою непрозрачность до 0, открывая полноцветный горизонт.

Отлично смотрится во всех других браузерах, но IE выявляет артефакты. Друг сказал мне, что это из-за какой-то странной ошибки с непрозрачностью анимации с помощью javascript в IE. Какое-то отношение к сглаживанию и предполагаемому черному фону? Я действительно не знаю.

Ответы [ 2 ]

6 голосов
/ 07 октября 2010

Фильтр alpha (используемый jQuery в качестве запасного варианта в IE, где CSS opacity не поддерживается) не может сосуществовать с изображением, имеющим альфа-канал, как переменная прозрачность в PNG.Это заставляет частично прозрачные черные пиксели на краях ваших фигур полностью непрозрачными, вызывая артефакты.

Вы можете получить лучший результат, поместив альфа-фильтр на <div>, что содержит полупрозрачное изображение.(Если вам нужна поддержка IE6, вам также потребуется исправление PNG на самом изображении.) Это все еще не совсем верно, поскольку непрозрачность каждого пикселя берется как минимум непрозрачности изображения и непрозрачности фильтра, а недва умноженных.Но часто все выглядит хорошо и не представляет слишком непрозрачной проблемы, с которой вы здесь сталкиваетесь.

1 голос
/ 08 октября 2010

Самое простое исправление - измените изображения на картинки. Поскольку изображение вашего города не имеет градиентов, преимущество поддержки альфа-канала в формате png на самом деле не то, что вам нужно. Это должно работать вплоть до ie6.

...