Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Computerhilfen: @Admins: Objekttransparenz bei PNGs

Hi!

Mir is vor kurzem aufgefallen, dass das "gesperrt" symbol für foren bei IE6 falsch angezeigt wird, das liegt daran, dass dieser keine Transparenz bei PNGs unterstützt.

Ich hab mich vor einiger Zeit damit beschäftigt einen Ausweg zu finden, und aus einem Tutorial hab ich dann einenen guten Ansatz bekommen.

Ich hab das ganze noch etwas verbessert, und dass is rausgekommen:

function correctPNG()
{
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);

if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i];
var imgName = img.src.toUpperCase();
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : "";
var imgClass = (img.className) ? "class='" + img.className + "' " : "";
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
var imgStyle = "display:inline-block;" + img.style.cssText;

var imgMouseover = (img.onmouseover)? "onmouseover=\"" + getJavascriptCode(img.onmouseover) + "\" ":"";
var imgMouseout = (img.onmouseout)? "onmouseout=\"" + getJavascriptCode(img.onmouseout) + "\" ":"";
var imgMousedown = (img.onmousedown)? "onmousedown=\"" + getJavascriptCode(img.onmousedown) + "\" ":"";
var imgMouseup = (img.onmouseup)? "onmouseup=\"" + getJavascriptCode(img.onmouseup) + "\" ":"";
var imgClick = (img.onclick)? "onclick=\"" + getJavascriptCode(img.onclick) + "\" ":"";


if (img.align == "left") imgStyle = "float:left;" + imgStyle;
if (img.align == "right") imgStyle = "float:right;" + imgStyle;
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
var strNewHTML = "<span " + imgID + imgClass + imgTitle + imgMouseover + imgMouseout + imgMousedown + imgMouseup + imgClick
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
img.outerHTML = strNewHTML;
i = i-1;
}
}
}
}
function getJavascriptCode(code)
{
code = code.toString();
if(code.startsWith("function anonymous()"))
{
var p1 = code.indexOf("{") + 1;
var p2 = code.lastIndexOf("}");

return code.substring(p1, p2).replace(/\n/g, "");
}
else
{
return code;
}
}

String.prototype.startsWith = function(data)
{
return (this.substr(0, data.length) == data);
}

Wenn ihr nun beim onload die Funktion correctPNG() aufruft, sollten alle geladenen PNG richtig und mit voller Transparenz angezeigt werden.

MFG
BWA

PS: Die Links zum schreiben einer PN im "Das Team" Bereich funktionieren nicht mehr.

Antworten zu Computerhilfen: @Admins: Objekttransparenz bei PNGs:

wäre das nicht besser bei Programmierung oder Webmaster aufgehoben ??

Nur da schaut wieder keiner der Admins rein :D

Außerdem is es kein Problem sondern eine Lösung^^^

MFG
BWA 

« Letzte Änderung: 09.01.08, 19:45:57 von BWA »

Habs einfach mal per PN dem NICO mitgeteilt , auch wegen  <<< PS >>>

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Vielen Dank, schau ich mir an. Statt dieser großen Funktion ist es natürlich einfacher, schnell ein GIF draus zu machen :)

Stimmt,

aber die Funktion hat den Vorteil dass sie auch bei Verläufen, d.h. bei halbtransparenten Elementen funktioniert, was du mit gifs ned schaffst :D

MFG
BWA

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

dafür ist der folgende trick ganz gut, wie ich finde:

http://www.grafik-blog.de/140-halbtransparenz-im-web.html

(und morgen verschieb ich das hier ins Webmasterforum, dass ist bestimmt für mehr Leute interessant)

Des ist schon klar, aber du kannst damit keine Verläufe machen, von transparent auf nicht transparent. Das geht jedoch mit einem PNG mit dem fix :D

Naja ich hoff ich bekomm den großteil meiner homepage bis morgen fertig dann kannst du sie dir ja mal anschauen^^

MFG
BWA

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

@Bernie -

- so ellegant wie hightec deine Seite ist
- so (etwas weniger) eindeutig in der Aussage sind die Pictogramme

! da könnte eine TextInfo beim MouseOver nicht schaden !


gez.
DerPingeligeDersGenauWissenWill

Hi^^

Ich bin leider gestern nicht mehr fertig geworden, d.h. du hast noch die alte Version gesehen, bei der neuen, die bis auf das Kontaktformular fertig is, gibts bereits diverse tooltips und eine wirklich geile gallerie.  Heute hab ich leider keine Zeit, d.h. ich werde die fertig version erst morgen am Abend bzw. Samstag in der früh online stellen können.

MFG
BWA

Soo^^

jetzt is sie fertig :D
http://www.berniwa.com

MFG
BWA

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

@BWA: Soll ich dir ma was sagen? Ich hab hier in der Woche "nur" meinen Laptop mit 2,54 GHz P4, 512 MB RAM und ATI-Grafikbeschleuniger, und trotzdem hab ich bei deinem Content-Panel bei jedem Slide 'ne Diavorstellung. Ich glaub, da haste es etwas zu gut gemeint mit dem JavaScript. Dass JS sowas kann (auch dank Bibliotheken wie prototype oder script.aculo.us), das is bekannt, aber Flash kann sowas glaub ich besser und schneller ;)

Ansonsten gefällt mir die Seite, aber das Performance-Problem drückt schon arg auf den Spaßfaktor :'(

greez 8)
JoSsiF

Ich weiß, aber das hab ich erst gemerkt wie ich sie auf einem anderen rechner ausprobiert hab, mein core 2 quad meint dabei gar nicht :D. Naja ich werd wohl eine Version anbieten, für leute mit langsameren rechner, bei dem ich die überblendeffekt minimiere, dann sollte es recht gut laufen, aber ich bin momentan a bissal im stress, jetzt wollte ich sie fertig bringen bevors wieder voll losgeht.

MFG
BWA

PS: Bin Flashhasser :D


« Unterschied zwischen Linux und Windows ServerSuche gutes, kostenloses CMS »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Zugriffszeit
In Milisekunden angegebene Zeit, die das Speichermedium zum Erreichen der gesuchten Daten braucht. Die Zeit ist abhängig vom technischen Verfahren des Mediums sowie ...

Reaktionszeit
In der Elektronik versteht man unter der Reaktionszeit die Zeit, die ein Flachbildschirm benötigt, um die Farbe und die Helligkeit eines Bildpunktes zu ändern. ...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...