2010-07-08 2 views
0

AlphaImageLoader를 IE6에서 사용할 수 있도록 노력하고 있습니다.IE6에서 투명한 PNG 용 AlphaImageLoader 적용

내가 시도한 솔루션 중 하나는 AlphaImageLoader를 적용한 다음 Opacity (0)을 적용하는 것이 좋습니다. 이것은 기본적으로 투명한 png를 백그라운드에두고 원래의 png를 사라지게합니다. 이것을 시도하면 이미지가 사라집니다. 불투명도 필터를 생략해도 효과는 없으며 png는 여전히 투명하지 않습니다. 누군가 PLZ 도움을 와주시겠습니까?

            <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로 추가됩니다.

감사합니다.

답변

0

이 사용 해보세요 :

이 하나 시도

// 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

야, 너 락. 이것은 본질적으로 내가 가진 것이지만 sizingMethod 인수를 잘못 사용하고 있다고 생각합니다. sizingMethod = 'image'가 'scale'로 설정 되었기 때문에 모든 배경이 작동하지만 이미지는 그렇지 않습니다. 위의 스크립트에 추가해야하는 것은 다음과 같습니다. $ (". curvepanel, .prescriptionheader, .navHeader") .css ("background-image", "none"); png 뒤에있는 배경을 보려면 background-image를 none으로 설정해야한다는 것을 알았습니다. 감사합니다. – Nick

+0

노 prob ', 친구 : – galambalazs

관련 문제