René 's Weblog
...und was die Welt schon immer nicht wissen wollte
jQuery-Ansatz für transparente PNG Grafiken im Internet Explorer 6
Zugriffe:947Bewertung:0(0Bewertungen)10.12.2008 - René Drescher-Hackel

Im Blog-Beitrag hatte ich einen jQuery-Ansatz aufgezeigt, wie man PNG-Grafiken im Internet Explorer < 7 transparent darstellen kann. Möglich wurde dies durch die Unterstützung des filter-Attributes.
Doch wie sieht das ganze aus, wenn man PNG-Hintergrundgrafiken einsetzt und diese zB einen transparenten Verlauf haben.
Hier könnte man wieder die scriptseitige Implementierung wählen:
 
<script type="text/javascript">
 $(document).ready(function() {
  if ($.browser.msie) {
   $(".transpPNG").each(function() {
   var img = this.currentStyle.backgroundImage.substr(5).replace("\")", "");
   $(this).css({ background: "none",
         filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='scale')" });
   });
 }
} );
</script>

Hier wurde eine Selektion auf alle DIV-Elemente mit dem class-Attribute "transpPNG" vorgenommen und die filter-Eigenschaft gesetzt. Wichtig zu wissen ist dabei, dass die background-Eigenschaft auf 'none' gesetzt werden muss. Die Bild-Url wird dabei aus den aktuellen Css-Definitionen ermittelt.
Als jQuery-Erweiterung ergäbe sich dann folgender Code:

 <script type="text/javascript"> 

 $(document).ready(function() {
 if ($.browser.msie) {
   $(".transpPNG").setTransparentBackground(); }
 });

$.fn.setTransparentBackground = function() {
 return this.each(function() {
  var img = this.currentStyle.backgroundImage.substr(5).replace("\")", "");
  $(this).css({ background: "none",
        filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='scale')"
  });
 });
}
</script>

Kick it on dotnet-kicks.de
sehr gutungenügend

Ihr Kommentar zu diesem Beitrag:
your gravatar
Sollten die Eingabefelder deaktiviert sein, so aktualisieren Sie den Bestätigungscode.
Best&auml;tigungscode
Das Weblog von René Drescher-Hackel beschäftigt sich überwiegend mit Themen aus dem Bereich der Webanwendungsentwicklung mit den Themenschwerpunkten ASP.NET und C# im DOT-NET Framework 2.0 / 3.5. In der clientseitigen Entwicklung liegt der Schwerpunkt bei Javascript und jQuery. René; Drescher-Hackel hat die Prüfung zum Microsoft Certified Tecnology Specialist - .NET Framework 2.0 Web Applications abgelegt.