Замена изображений PNG прозрачным фоном в Internet Explorer - PullRequest
0 голосов
/ 20 декабря 2009

image1.png и image2.png имеют прозрачный фон.

<script type="text/javascript">
    $(document).ready(function(){
        $("img#test").click(function() {
            $(this).attr("src", "image2.png");
        });
    });
</script>
<img id="test" src="image1.png">

Приведенный выше код должен заменить image1.png на image2.png. Но в Internet Explorer 6/7/8 (совместимость просмотра отключена) он не удаляет image1.png из фона, а просто кладет image2.png поверх image1.png.

Как полностью удалить файл image1.png из фона перед его заменой на image2.png?

EDIT

Я использовал следующий код в base.css, чтобы исправить ошибки при отображении прозрачного изображения .png в Internet Explorer.

/ * Png Ransparent * /

.mypng img {

азимут: выражение (

this.pngSet? This.pngSet = true: (this.nodeName == "IMG" && this.src.toLowerCase (). IndexOf ('. Png')> - 1? (This.runtimeStyle.backgroundImage = " доли не имеет»,

this.runtimeStyle.filter = "progid: DXImageTransform.Microsoft.AlphaImageLoader (src = '" + this.src + "', sizingMethod = 'image')",

this.src = "/static/images/transparent.gif"):(this.origBg = this.origBg? This.origBg: this.currentStyle.backgroundImage.toString (). Replace ('url (", '') .Надеть ( '")', ''),

this.runtimeStyle.filter = "progid: DXImageTransform.Microsoft.AlphaImageLoader (src = '" + this.origBg + "', sizingMethod = 'crop')",

this.runtimeStyle.backgroundImage = "none")), this.pngSet = true);

}

Это причина этой проблемы?

Ответы [ 2 ]

1 голос
/ 20 декабря 2009

Вы можете попробовать с помощью $(this).after(); и добавить новое изображение после того, которое вы хотите заменить; и, наконец, сделать $(this).remove();

0 голосов
/ 21 декабря 2009

После замены .png кода исправления на DD_belatedPNG прежний код работает.

...