Я провел много исследований в IE7 png с проблемой непрозрачности и использовал два обходных пути, которые охватывают большинство, но, к сожалению, не все сценарии.
Первый из них уже упоминался в этой теме, в котором должны быть разные файлы изображений для разных необходимых значений прозрачности. Этот метод хорошо работает для эффектов наведения мыши и отключения мыши, когда вы просто хотите показать состояние, но, к сожалению, бесполезен, когда вы хотите анимировать прозрачность.
Второй метод будет работать большую часть времени, но это зависит от вашей разметки страницы и дизайна. Чтобы подделать анимацию непрозрачности div, вы можете поместить фиктивный второй div над реальным div, на котором вы хотите показать изменение непрозрачности. Второй div должен быть абсолютно позиционирован и принимать ширину и высоту фона div. В зависимости от дизайна вашей страницы вы затем назначаете ему цвет фона (который лучше всего подходит для реального фонового изображения png), и вы анимируете непрозрачность этого div, чтобы постепенно увеличивать или уменьшать его в зависимости от эффекта, который вы ищете.
Поскольку вы все равно будете использовать javascript для анимации непрозрачности, просто создать и вставить новый div, когда требуется эффект, и удалить его, как только вы закончите. Это позволяет фактическому содержимому div'ов по-прежнему копироваться и вставляться или щелкаться правой кнопкой мыши посетителями сайта.
Также, возможно, попробуйте подтвердить мою догадку, что из-за непрозрачности отображается черная граница: отключите все эффекты затухания и дайте мне знать, правильно ли отображаются изображения.