Примените AlphaImageLoader для прозрачных PNG в IE6 - PullRequest
0 голосов
/ 09 июля 2010

Я некоторое время пытался заставить AlphaImageLoader работать с моими s в IE6.

Одно из решений, которое я пробовал, предлагает применить AlphaImageLoader, а затем Opacity (0). Это, по существу, поместит прозрачный png на задний план и заставит оригинальный png исчезнуть. Когда я пытаюсь это сделать, изображение просто исчезает. Пропуск фильтра непрозрачности не имеет никакого эффекта, и png все еще не прозрачен. Приходите, кто-нибудь, пожалуйста, помогите?

                                                    <img id="NavBox_topLeft.png" src="#" width="17" height="34"  class="png summaryimgsrc1"

style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../../1.75/commondata/sharedimages/summary/NavBox_topLeft.png', sizingMethod='scale');"/>
    </td>

Я пытаюсь проверить это в разметке. Ultimatley будет дополняться JS.

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 июля 2010

Попробуйте:

// Transparent PNG for IE
// http://vbence.web.elte.hu/ie_png_alpha.html

function alphaFixIE() {
    var s, i, j;

    // IMG
    var els = document.getElementsByTagName("IMG");
    for (i=0; i<els.length; i++) {
        s = els[i].src;
        if (s.toLowerCase().indexOf(".png") != -1) {
            els[i].src = "spacer.gif";
            els[i].style.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + s + "', sizingMethod=image);";
        }
    }

    // CSS: background
    for (i=0; i<document.styleSheets.length; i++) {
        var pos = document.styleSheets[i].href.lastIndexOf("/");
        var cssDir = (pos != -1) ? document.styleSheets[i].href.substring(0, pos + 1) : "";
        for (j=0; j<document.styleSheets[i].rules.length; j++) {
            var style = document.styleSheets[i].rules[j].style;
            if (style.backgroundImage.toLowerCase().indexOf(".png") != -1) {
                var filename = style.backgroundImage.substring(4, style.backgroundImage.length - 1);
                if (filename.indexOf("http://") != 0 && filename.indexOf("/") != 0)
                    filename = cssDir + filename;
                style.backgroundImage = "none";
                style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + filename + "', sizingMethod='crop');";
            }
        }
    }
}

if (navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Windows") != -1)
    window.attachEvent("onload", alphaFixIE);

Примечание: не забудьте добавить spacer.gif в тот же каталог.

(возможно, браузер/ Часть обнаружения функций может быть немного улучшена, но она работает)

0 голосов
/ 09 июля 2010

Существуют сотни сценариев, которые уже делают это для вас.

Попробуйте это: http://www.dillerdesign.com/experiment/DD_belatedPNG/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...